php工程師面試問題

學識都 人氣:2.15W

PHP開發工程師面試題分享

php工程師面試問題

1. 下列哪一句不能將'john'添加到數組$user? 答:BD

A. $user[] = 'john';

B. array_add($user, 'john');

C. array_push($user, 'john');

D. $user ||= 'john';

2. 比較sort(), asort(), ksort()三個函數的用法以及使用環境

答:sort -- 將數組的值由a-z重排,並自動替換索引從0...結束

asort --- 此函數將數組的元素由a-z重新排列,且保持原先索引值和元素的對應關係,這個函數主要是用於

需要將數組的元素重新排列。這個函數比較常用。

ksort --- 此函數將數組依照索引值由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. 以下代碼輸出什麼內容, 爲何。

$num = 10;

function foo(){

$num = $num * 10;

}

foo();

echo $num;

答:

結果爲10.因爲foo()中的$num是訪問不到函數外的變量的。要想訪問加上global $num;結果就成100了。

4. 引用和普通變量的區別。

答:普通變量是開闢了一塊新的存儲空間,引用是直接指向其他的存儲空間。

如:

$num = 10;

function foo($num){

$num = $num * 10;

}

foo($num);

echo $num;

調foo($num);函數時以變量傳遞,則返回10;

如果改成引用傳遞,返回100;

$num = 10;

function foo(&$num){

$num = $num * 10;

}

foo($num);

echo $num;

5. 加載類庫的方法。

答:

function __autoload($class){

require_once("./lib/".$class.'');

}

6. foo()和@foo()的區別。

答:加上@符號會屏蔽報錯提示。

如下:

$num = 10;

function foo(&$num){

$num = $num / 0;

}

foo($num);

echo $num;

大家都知道除數不能爲0。如果加上@符號後就沒有Warning: Division by zero

7. 你平時如何調試PHP代碼。

答:用echo打出調試或用exit調試。再加上火狐瀏覽器調。

8. === 的作用是什麼?舉一個例子,使用 == 返回true,但是使用 === 返回false。

答:=== 的作用是比較變量的值還比較變量的類型。==只比較值。

如下:

$str = '111';

if($str==111){//如果改成===則返回"失敗了";

echo "成功了";

}else{

echo "失敗了";

}

9. 聲明一個不含方法和屬性的類。

答:class Db {}

10. 創建一個對象myclass的'實例。

答:$db = new myclass();

11. 從類的內部訪問或者設置屬性。

答:

class DB{

private $username; //用戶名

private $userpwd; //密碼

public function test(){

$this->username='root';//給變量賦值

self::test2();//相當於$this->test2();//調用本類test2方法

//parent::test2();這樣的話就調用了父類的test2方法

}

public function test2(){

}

}