玥殇 发表于 2015-8-26 13:23:01

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]
查看完整版本: php笔试题摘录