php笔试题摘录

心已入冬 提交于 2020-04-06 05:54:52
1. 写出如下程序的输出结果
 1 <?php
 2 $str1 = null;
 3 $str2 = false;
 4 echo $str1==$str2 ? '相等' : '不相等';  //相等
 5 $str3 = '';
 6 $str4 = 0;
 7 echo $str3==$str4 ? '相等' : '不相等';  //相等
 8 $str5 = 0;
 9 $str6 = '0';
10 echo $str5===$str6 ? '相等' : '不相等';  //不相等
11 ?>
2. 写出如下程序的输出结果
 1 <?php
 2 $a1 = null;
 3 $a2 = false;
 4 $a3 = 0;
 5 $a4 = '';
 6 $a5 = '0';
 7 $a6 = 'null';
 8 $a7 = array();
 9 $a8 = array(array());
10 echo empty($a1) ? 'true' : 'false';  //true
11 echo empty($a2) ? 'true' : 'false';  //true
12 echo empty($a3) ? 'true' : 'false';  //true
13 echo empty($a4) ? 'true' : 'false';  //true
14 echo empty($a5) ? 'true' : 'false';  //true
15 echo empty($a6) ? 'true' : 'false';  //false
16 echo empty($a7) ? 'true' : 'false';  //true
17 echo empty($a8) ? 'true' : 'false';  //false
18 ?>
3. 写出如下程序的输出结果
1 <?php
2 $test = 'aaaaaa';
3 $abc = & $test;
4 unset($test);
5 echo $abc;  //aaaaaa
6 ?>
4. 写出如下程序的输出结果
 1 <?php
 2 $count = 5;
 3 function get_count(){
 4   static $count = 0;
 5   return $count++;
 6 }
 7 echo $count;  //5
 8 ++$count;
 9 echo get_count();  //0
10 echo get_count();  //1
11 ?>
5. 写出如下程序的输出结果
 1 <?php
 2 $GLOBALS['var1'] = 5;
 3 $var2 = 1;
 4 function get(){
 5   global $var2;
 6   $var1 = 0;
 7   return $var2++;
 8 }
 9 get();
10 echo $var1; //5
11 echo $var2; //2
12 ?>
6. 写出如下程序的输出结果
 1 <?php
 2 function get_arr($arr) {
 3   unset($arr[0]);
 4 }
 5 $arr1 = array(1, 2);
 6 $arr2 = array(1, 2);
 7 get_arr(&$arr1);
 8 get_arr($arr2);
 9 echo count($arr1);  //1
10 echo count($arr2);  //2
11 ?>
7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数
<?php
$file='dir/upload.image.jpg';
//方法1
$a=pathinfo($file);
echo $a['extension'];
//方法2
echo substr($file,strrpos($file,'.')+1);
//方法3
echo array_pop(explode('.',$file));
//方法4
echo preg_replace('/(.)*\.{1}/ix','',$file);
//方法5
echo strrchr($file,'.');
//方法6
echo strrev(substr(strrev($file),0,strpos(strrev($file),'.')));
?>
8. 使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组
 1 <?php
 2 //冒牌排序
 3 $array=array(3,45,2,21,5,2);
 4 $max=count($array);
 5 for($i=0;$i<$max;$i++){
 6   for($j=$i+1;$j<$max;$j++){
 7     if($array[$i]>$array[$j]){
 8       $temp=$array[$i];
 9       $array[$i]=$array[$j];
10       $array[$j]=$temp;
11     }
12   }
13 }
14 var_dump($array);
15 //快速排序
16 function quick_sort($array){
17   if (count($array) <= 1) return $array;
18   $key = $array[0];
19   $max=count($array);
20   $left_arr = array();
21   $right_arr = array();
22   for ($i=1; $i<$max; $i++) {
23     if ($array[$i] <= $key){
24       $left_arr[] = $array[$i];
25     }else{
26       $right_arr[] = $array[$i];
27     }
28   }
29   $left_arr = quick_sort($left_arr);
30   $right_arr = quick_sort($right_arr);
31   return array_merge($left_arr, array($key), $right_arr);
32 }
33 var_dump(quick_sort($array));
34 ?>
9. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组
 1 <?php
 2 //顺序查找
 3 $array=array(1,2,5,21,45);
 4 $str=45;
 5 function seq_sch($array,$str){
 6   $max=count($array);
 7   for($i=0;$i<$max;$i++){
 8     if($str == $array[$i]) break;
 9   }
10   return $i<$max?$i:'';
11 }
12 echo seq_sch($array,$str);;
13 //二分查找
14 function bin_sch($array,$k,$min,$max){
15   if ($min <= $max){
16     $mid = intval(($min+$max)/2);
17     if ($array[$mid] == $k){
18       return $mid;
19     }elseif ($k < $array[$mid]){
20       return bin_sch($array,$k,$min,$mid-1);
21     }else{
22       return bin_sch($array,$k,$mid+1,$max);
23   }
24 }
25   return '';
26 }
27 echo bin_sch($array,$str,0,count($array));
28 ?>
10. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数
 1 <?php
 2 $array=array(
 3   array(23,4,5,6,7,82),
 4   array(22,34,245,78),
 5   array(2,14,25,72)
 6 );
 7 function array_sort($array){
 8   if(!is_array($array)) return false;
 9   $newArray = array();
10   foreach($array as $k => $a){
11     foreach($a as $v){
12       $newArray[]=$v;
13     }
14   }
15   sort($newArray);
16   return $newArray;
17 }
18 var_dump(array_sort($array));
19 ?>
20  

 

 
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!