PHP開發(fā)工程師面試題分享
1. 下列哪一句不能將'john'添加到數(shù)組$user? 答:BD
A. $user[] = 'john';
B. array_add($user, 'john');
C. array_push($user, 'john');
D. $user ||= 'john';
2. 比較sort(), asort(), ksort()三個函數(shù)的用法以及使用環(huán)境。
答:sort -- 將數(shù)組的值由a-z重排,并自動替換索引從0...結束
asort --- 此函數(shù)將數(shù)組的元素由a-z重新排列,且保持原先索引值和元素的對應關系,這個函數(shù)主要是用于
需要將數(shù)組的元素重新排列。這個函數(shù)比較常用。
ksort --- 此函數(shù)將數(shù)組依照索引值由a-z重新排列
例子:
對array('a'=>111, '9'=>"orange", 6=>2, "apple");排序。
sort則返回: Array ( [0] => apple [1] => orange [2] => 2 [3] => 111 )值由a-z重排,索引也變了。
asort則返回:Array ( [10] => apple [9] => orange [6] => 2 [a] => 111 )值由a-z重排,保持索引以應
ksort則返回: Array ( [a] => 111 [6] => 2 [9] => orange [10] => apple )索引值由a-z重新排列,保持索
引以應
3. 以下代碼輸出什么內(nèi)容, 為何。
$num = 10;
function foo(){
$num = $num * 10;
}
foo();
echo $num;
答:
結果為10.因為foo()中的$num是訪問不到函數(shù)外的變量的。要想訪問加上global $num;結果就成100了。
4. 引用和普通變量的區(qū)別。
答:普通變量是開辟了一塊新的存儲空間,引用是直接指向其他的存儲空間。
如:
$num = 10;
function foo($num){
$num = $num * 10;
}
foo($num);
echo $num;
調(diào)foo($num);函數(shù)時以變量傳遞,則返回10;
如果改成引用傳遞,返回100;
$num = 10;
function foo(&$num){
$num = $num * 10;
}
foo($num);
echo $num;
5. 加載類庫的方法。
答:
function __autoload($class){
require_once("./lib/".$class.'.php');
}
6. foo()和@foo()的區(qū)別。
答:加上@符號會屏蔽報錯提示。
如下:
$num = 10;
function foo(&$num){
$num = $num / 0;
}
foo($num);
echo $num;
大家都知道除數(shù)不能為0。如果加上@符號后就沒有Warning: Division by zero