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(){
}
}