php笔试题.docx
《php笔试题.docx》由会员分享,可在线阅读,更多相关《php笔试题.docx(12页珍藏版)》请在冰豆网上搜索。
![php笔试题.docx](https://file1.bdocx.com/fileroot1/2022-12/16/a713bf84-8a9c-454a-a465-4267c7023415/a713bf84-8a9c-454a-a465-4267c70234151.gif)
php笔试题
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($file_name),get_ext2($file_name)
二、算法题
1.使用PHP描述冒泡排序和快速排序算法,对象能够是一个数组
2.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象能够是一个有序数组
3.写一个二维数组排序算法函数,能够具有通用性,能够调用php内置函数
【附答案】(以下答案不一定是最好的,只是一个简单的参考)
一、基础题
1.相等相等不相等
2.truetruetruetruetruefalsetruefalse
3.aaaaaa
4.501
5.52
6.12
7.使用五种以上方式获取一个文件的扩展名
functionget_ext1($file_name){
returnstrrchr($file_name,'.');
}
functionget_ext2($file_name){
returnsubstr($file_name,strrpos($file_name,'.'));
}
functionget_ext3($file_name){
returnarray_pop(explode('.',$file_name));
}
functionget_ext4($file_name){
$p=pathinfo($file_name);
return$p['extension'];
}
functionget_ext5($file_name){
returnstrrev(substr(strrev($file_name),0,strpos(strrev($file_name),'.')));
}
二、算法题
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面试题(附答案)-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./