PHP 程序开发笔试题 一、基础题 1. 写出如下程序的输出结果 $str1 = null; $str2 = false; echo $str1==$str2 ? 'true' : 'false'; $str3 = ''; $str4 = 0; echo $str3==$str4 ? ''true' ' : 'false'; $str5 = 0; $str6 = '0'; echo $str5===$str6 ? ''true' ' : 'false'; ?> 结果: true true false 2. 写出如下程序的输出结果 $a1 = null; $a2 = false; $a3 = 0; $a4 = ''; $a5 = '0'; $a6 = 'null'; $a7 = array(); $a8 = array(array()); echo empty($a1) ? 'true' : 'false'; echo empty($a2) ? 'true' : 'false'; echo empty($a3) ? 'true' : 'false'; echo empty($a4) ? 'true' : 'false'; echo empty($a5) ? 'true' : 'false';
echo empty($a6) ? 'true' : 'false'; echo empty($a7) ? 'true' : 'false'; echo empty($a8) ? 'true' : 'false'; echo '
'; echo isset($a1) ? 'true' : 'false'; echo isset($a2) ? 'true' : 'false'; echo isset($a3) ? 'true' : 'false'; echo isset($a4) ? 'true' : 'false'; echo isset($a5) ? 'true' : 'false'; echo isset($a6) ? 'true' : 'false'; echo isset($a7) ? 'true' : 'false'; echo isset($a8) ? 'true' : 'false'; ?> 结果: truetruetruetruetruefalsetruefalse falsetruetruetruetruetruetruetrue
3. 写出如下程序的输出结果 $test = 'aaaaaa'; $abc = &; $test; unset($test); echo $abc; ?> 结果: aaaaaa 4. 写出如下
程序的输出结果 $count = 5; function get_count(){ static $count = 0;
return $count++; } echo $count; ++$count; echo get_count(); echo get_count(); ?> 结果: 501 5. 写出如下程序的输出结果 $GLOBALS['var1'] = 5; $var2 = 1; function get_value(){ global $var2; $var1 = 0; return $var2++; } get_value(); echo $var1; echo $var2; ?> 结果: 52 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); echo count($arr2); ?> 结果: 12 7. 使用三种以上方式获取一个文件的扩展名 要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,必须使用 PHP 自带的处 理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)。 方法一: function get_ext1 ($file_name) { $extend =""; $pt=strrpos($file_name, "."); if ($pt) $extend =substr($file_name, $pt+1, strlen($file_name) - $pt); return ($extend); } 方法二: function get_ext2($file_name) { $extend =explode("." , $file_name); $va=count($extend)-1; return $extend[$va]; } 方法三: function get_ext3($file_name) { $extend =explode("." , $file_name);
return end($extend); }
8. 写一个函数,算出两个文件的相对路径,如 $a = ‘/a/b/c/d/e.php’; $b = ‘/a/b/12/34/c.php’; 计算出在 c 文件中调用 e 文件可以这么些../../c/d/e.php $d)?$c:$d ; $str1 = '' ; $str2 = '' ; for ($j = $i ;$
j<$e ;$j++) { if(isset($arr_a[$j])) { if($j<($d-1)){
$str1 .= $arr_a[$j] . "/" ; } else { $str1 .= $arr_a[$j] ; } } if(isset($brr_b[$j])) { $str2 .= "../" ; } } return $str2 . $str1 ; } $a = "/c/b/c/d/k/h/t/e.php" ; //实例调用 $b = "/a/b/e/f/h.php" ; $relative = getRelative($a,$b) ; var_dump($relative); ?>
9. 写出将 IP 字符串 127.0.0.1 转换为 127000000001 长整型数字的函数 function getip($userip){ $ip = $userip; $iparr = explode(".",$ip); $j=count($iparr); for($i=0;$i<$j ;$i++ ){ $ipi.=sprintf("%03d", $iparr[$i]); } return $ipi; } 10. 请说明在 PHP 中“” 和‘’ 两个引号的区别
答:双引号里面的字段会经过编译