您好,欢迎访问三七文档
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.truetruetruetruetruefalsetruefalse3.aaaaaa4.5015.526.127.使用五种以上方式获取一个文件的扩展名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;$icount($array);$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.03.(4)未授权(5)header(HTTP/1.0404NotFound);4.(6)对数组进行逆向排序并保持索引关系(7)Allerrorsandwarnings5.没弄明白6./script[^].*?.*?\/script/si7.(10)LoadModulephp5_moduleD:/xampp/apache/bin/php5apache2.dll(11)AddTypeapplication/x-httpd-php-source.phpsAddTypeapplication/x-httpd-php.php.php5.php4.php3.phtml8.(12)发生异常时include产生警告require产生致命错误(13)require_once()/include_once()9.serialize()/unserialize()10.allow_call_time_pass_reference11.(16)自然左外连接(17)selectname,count(score)assum_scorefromtbl_userleftjointbl_scoreontbl_user.ID=tbl_score.IDgroupbytbl_user.ID12.结束标识符所在的行不能包含任何其它字符除;13./***遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。*@paramstring$dir*@returnarray*/functi
本文标题:php笔试题
链接地址:https://www.777doc.com/doc-2850447 .html