1. 写出如下程序的输出结果
<?php
$str1 = null;
$str2 = false;
echo $str1==$str2 ? ‘相等‘ : ‘不相等‘; //相等
$str3 = ‘‘;
$str4 = 0;
echo $str3==$str4 ? ‘相等‘ : ‘不相等‘; //相等
$str5 = 0;
$str6 = ‘0‘;
echo $str5===$str6 ? ‘相等‘ : ‘不相等‘; //不相等
?>
2. 写出如下程序的输出结果
<?php
$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. 写出如下程序的输出结果
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