php笔试题摘录
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);
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;
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
页:
[1]