php笔试题摘录

1. 写出如下程序的输出结果

<?php 
 $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());
 echo empty($a1) ? 'true' : 'false';  //true
 echo empty($a2) ? 'true' : 'false';  //true
 echo empty($a3) ? 'true' : 'false';  //true
 echo empty($a4) ? 'true' : 'false';  //true
 echo empty($a5) ? 'true' : 'false';  //true
 echo empty($a6) ? 'true' : 'false';  //false
 echo empty($a7) ? 'true' : 'false';  //true
 echo empty($a8) ? 'true' : 'false';  //false

3. 写出如下程序的输出结果

$test = 'aaaaaa';
 $abc = & $test;
 unset($test);
 echo $abc;  //aaaaaa

4. 写出如下程序的输出结果

$count = 5;
 function get_count(){
   static $count = 0;
   return $count++;
 }
 echo $count;  //5
 ++$count;
 echo get_count();  //0
 echo get_count();  //1

5. 写出如下程序的输出结果

 $GLOBALS['var1'] = 5;
 $var2 = 1;
 function get(){
   global $var2;
   $var1 = 0;
   return $var2++;
 }
 get();
 echo $var1; //5
 echo $var2; //2

6. 写出如下程序的输出结果

function get_arr($arr) {
   unset($arr[0]);
 }
 $arr1 = array(1, 2);
 $arr2 = array(1, 2);
 get_arr(&$arr1);
 get_arr($arr2);
 echo count($arr1);  //1
 echo count($arr2);  //2

7. 使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用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描述冒泡排序和快速排序算法,对象可以是一个数组

//冒泡排序
 $array=array(3,45,2,21,5,2);
 $max=count($array);
 for($i=0;$i<$max;$i++){
   for($j=$i+1;$j<$max;$j++){
     if($array[$i]>$array[$j]){
       $temp=$array[$i];
       $array[$i]=$array[$j];
       $array[$j]=$temp;
     }
   }
 }
 var_dump($array);
 //快速排序
 function quick_sort($array){
   if (count($array) <= 1) return $array;
   $key = $array[0];
   $max=count($array);
   $left_arr = array();
   $right_arr = array();
   for ($i=1; $i<$max; $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);
   return array_merge($left_arr, array($key), $right_arr);
 }
 var_dump(quick_sort($array));

9. 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组

//顺序查找
 $array=array(1,2,5,21,45);
 $str=45;
 function seq_sch($array,$str){
   $max=count($array);
   for($i=0;$i<$max;$i++){
     if($str == $array[$i]) break;
   }
   return $i<$max?$i:'';
 }
 echo seq_sch($array,$str);;
 //二分查找
 function bin_sch($array,$k,$min,$max){
   if ($min <= $max){
     $mid = intval(($min+$max)/2);
     if ($array[$mid] == $k){
       return $mid;
     }elseif ($k < $array[$mid]){
       return bin_sch($array,$k,$min,$mid-1);
     }else{
       return bin_sch($array,$k,$mid+1,$max);
   }
 }
   return '';
 }
 echo bin_sch($array,$str,0,count($array));

10. 写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数

$array=array(
   array(23,4,5,6,7,82),
   array(22,34,245,78),
   array(2,14,25,72)
 );
 function array_sort($array){
   if(!is_array($array)) return false;
   $newArray = array();
   foreach($array as $k => $a){
     foreach($a as $v){
       $newArray[]=$v;
     }
   }
   sort($newArray);
   return $newArray;
 }
 var_dump(array_sort($array));



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值