php笔试题.docx
- 文档编号:6089819
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:12
- 大小:18KB
php笔试题.docx
《php笔试题.docx》由会员分享,可在线阅读,更多相关《php笔试题.docx(12页珍藏版)》请在冰豆网上搜索。
php笔试题
1.写出如下程序的输出结果
$str1=null;
$str2=false;
echo$str1==$str2?
'相等':
'不相等';
$str3='';
$str4=0;
echo$str3==$str4?
'相等':
'不相等';
$str5=0;
$str6='0';
echo$str5===$str6?
'相等':
'不相等';
?
>
2.写出如下程序的输出结果
$a1=null;
$a2=false;
$a3=0;
$a4='';
$a5='0';
$a6='null';
$a7=array();
$a8=array(array());
echoempty($a1)?
'true':
'false';
echoempty($a2)?
'true':
'false';
echoempty($a3)?
'true':
'false';
echoempty($a4)?
'true':
'false';
echoempty($a5)?
'true':
'false';
echoempty($a6)?
'true':
'false';
echoempty($a7)?
'true':
'false';
echoempty($a8)?
'true':
'false';
?
>
3.写出如下程序的输出结果
$test='aaaaaa';
$abc=&$test;
unset($test);
echo$abc;
?
>
4.写出如下程序的输出结果
$count=5;
functionget_count(){
static$count=0;
return$count++;
}
echo$count;
++$count;
echoget_count();
echoget_count();
?
>
5.写出如下程序的输出结果
$GLOBALS['var1']=5;
$var2=1;
functionget_value(){
global$var2;
$var1=0;
return$var2++;
}
get_value();
echo$var1;
echo$var2;
?
>
6.写出如下程序的输出结果
functionget_arr($arr){
unset($arr[0]);
}
$arr1=array(1,2);
$arr2=array(1,2);
get_arr(&$arr1);
get_arr($arr2);
echocount($arr1);
echocount($arr2);
?
>
7.使用五种以上方式获取一个文件的扩展名
要求:
dir/upload.image.jpg,找出.jpg或者jpg,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如get_ext1($),get_ext2($)
二、算法题
1.使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
2.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
3.写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
【附答案】(以下答案不一定是最好的,只是一个简单的参考)
一、基础题
1.相等相等不相等
2.truetruetruetruetruefalsetruefalse
3.aaaaaa
4.501
5.52
6.12
7.使用五种以上方式获取一个文件的扩展名
functionget_ext1($){
returnstrrchr($,'.');
}
functionget_ext2($){
returnsubstr($,strrpos($,'.'));
}
functionget_ext3($){
returnarray_pop(explode('.',$));
}
functionget_ext4($){
$p=pathinfo($);
return$p['extension'];
}
functionget_ext5($){
returnstrrev(substr(strrev($),0,strpos(strrev($),'.')));
}
二、算法题
1.使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
//冒泡排序(数组排序)
functionbubble_sort($array)
{
$count=count($array);
if($count<=0)returnfalse;
for($i=0;$i<$count;$i++){
for($j=$count-1;$j>$i;$j--){
if($array[$j]<$array[$j-1]){
$tmp=$array[$j];
$array[$j]=$array[$j-1];
$array[$j-1]=$tmp;
}
}
}
return$array;
}
//快速排序(数组排序)
functionquick_sort($array){
if(count($array)<=1)return$array;
$key=$array[0];
$left_arr=array();
$right_arr=array();
for($i=1;$i if($array[$i]<=$key) $left_arr[]=$array[$i]; else $right_arr[]=$array[$i]; } $left_arr=quick_sort($left_arr); $right_arr=quick_sort($right_arr); returnarray_merge($left_arr,array($key),$right_arr); } 2.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组 //二分查找(数组里查找某个元素) functionbin_sch($array,$low,$high,$k){ if($low<=$high){ $mid=intval(($low+$high)/2); if($array[$mid]==$k){ return$mid; }elseif($k<$array[$mid]){ returnbin_sch($array,$low,$mid-1,$k); }else{ returnbin_sch($array,$mid+1,$high,$k); } } return-1; } //顺序查找(数组里查找某个元素) functionseq_sch($array,$n,$k){ $array[$n]=$k; for($i=0;$i<$n;$i++){ if($array[$i]==$k){ break; } } if($i<$n){ return$i; }else{ return-1; } } 3.写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数 //二维数组排序,$arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序 functionarray_sort($arr,$keys,$order=0){ if(! is_array($arr)){ returnfalse; } $keysvalue=array(); foreach($arras$key=>$val){ $keysvalue[$key]=$val[$keys]; } if($order==0){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach($keysvalueas$key=>$vals){ $keysort[$key]=$key; } $new_array=array(); foreach($keysortas$key=>$val){ $new_array[$key]=$arr[$val]; } return$new_array; } 一份php面试题(附答案)2007-06-2510: 36 考的很基础,但基础不牢,有一批不会做。 像在HTTP1.0中,状态码401的含义,error_reporting(2047)这些不知道。 但用2047似乎有点儿变态,太不易读。 如果可以参考手册~~~~ *1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量 (1)中;而链接到当前页面的URL记录在预定义变量 (2)中。 2.执行程序段 phpecho8%(-2)? >将输出(3)。 3.在HTTP1.0中,状态码401的含义是(4);如果返回“找不到文件”的提示,则可用header函数,其语句为(5)。 4.数组函数arsort的作用是(6);语句error_reporting(2047)的作用是(7)。 5.PEAR中的数据库连接字符串格式是(8)。 6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉): (9)。 7.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块, 然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。 8.语句include和require都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。 9.类的属性可以序列化后保存到session中,从而以后可以恢复整个类,这要用到的函数是(14)。 10.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on. 11.SQL中LEFTJOIN的含义是(16)。 如果tbl_user记录了学生的姓名(name)和学号(ID), tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject), 要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。 12.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。 13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。 14.简述论坛中无限分类的实现原理。 15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。 用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。 //答案(填空): 1.echo$_SERVER['PHP_SELF'];echo$_SERVER["HTTP_REFERER"]; 2.0 3.(4)未授权(5)header("HTTP/1.0404NotFound"); 4.(6)对数组进行逆向排序并保持索引关系 (7)Allerrorsandwarnings 5.没弄明白 6./
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1