PHP基礎面試基礎-2
11. 常量分為系統內建常量和自定義常量。請說出最常見的幾個系統內建常量?
echo __FILE__ ; // 取得當前檔案的絕對地址,結果:D:\www\test.php
echo dirname(__FILE__); // 取得當前檔案所在的絕對目錄,結果:D:\www\
echo dirname(dirname(__FILE__)); //取得當前檔案的上一層目錄名,結果:D:\
__LINE__ 檔案中的當前行號
12. 如果定義了兩個相同的常量,前者和後者哪個起作用?
前者起作用,因為常量一旦定義就不能被重新定義或者取消定義。
13. 常量和變數有哪些區別?
1)常量前沒有$符號;
2)常量只能通過define()定義,而不能通過賦值語句定義;
3)常量可以在任何地方定義和訪問,而變數有全域性和區域性之分;
4)常量一旦定義就不能被重新定義或者取消定義,而變數而通過賦值方式重新定義;
5)常量的值只能是標量資料,而變數的資料庫型別有8種原始資料型別。
14. PHP中常用的幾個預定義的全域性陣列變數是哪些?
$_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE, $_FILES
$_ENV, $GLOBALS
15. 在實際開發中,常量最常用於哪些地方?
1)連線資料庫的資訊定義成常量,如資料庫伺服器的使用者名稱、密碼、資料庫名、主機名;
2)將站點的部分路徑定義成常量,如web絕對路徑,smarty的安裝路徑,model、view或者controller的資料夾路徑;
3)網站的公共資訊,如網站名稱,網站關鍵詞等資訊。
16. 函式的優越性有哪些?
提高函式的可維護性、軟體可靠性、程式可重用性、程式開發效率、
17. 如何定義一個函式?函式名區分大小寫嗎?
1)使用 function 關鍵字;
2)函式命名規則和變數一樣,以字母或者下劃線開頭,而不能以數字開頭;
3)函式名不區分大小寫;
4)函式名不可以使用已經宣告過的或者系統自建的函式名稱。
18. 什麼是變數的能見度 或者 說是變數作用域?
就是變數在程式中的可作用範圍。根據變數的能見度,變數分為區域性變數和全域性變數。
19. 什麼是區域性變數和全域性變數?函式內是否可以直接呼叫全域性變數?
區域性變數是函式內部定義的變數,其作用域是所在的函式。如果函式外還有一個跟區域性變數名字一樣的變數,
程式會認為它們兩個是完全不同的兩個變數。當退出函式的時候,其中的區域性變數就同時被清除。
全域性變數是定義在所有函式以外的變數,其作用域是整個php檔案,但是在使用者自定義的函式內部是無法使用的。
如果一定要在使用者自定義的函式內部使用全域性變數,那麼就需要使用global關鍵字宣告。
也就是說如果在函式內的變數前加上golbal來修飾,那麼函式內部就可以訪問到這個全域性變數,
不僅可以利用這個全域性變數進行運算而且可以對這個全域性變數進行重新賦值。
全域性變數還可以使用 $GLOBALS['var'] 來呼叫。
20. global關鍵詞如何使用?預定義的全域性變數陣列$GLOBALS如何使用?(重點)
1),<?PHP
$a = 1;
$b = 2;
function Sum()
{
global $a, $b; //在裡面宣告為全域性變數
$b = $a + $b;
}
Sum();
echo $b;
?>
結果: 3
如果沒有全域性變數global在方法內是不能獲得$a,$b值的,所以在方法裡面想用外面的變數就
需要先宣告這個變數為全域性變數,這樣就可以使用了,很方便吧。
2),$GLOBALS 超級全域性變數陣列可以認為是超級全域性變數的超集,包含全域性作用域內的所有變數。執行下面的程式碼可以檢視$GLOBALS 中所有的變數
print '<pre>';
print_r ($GLOBALS);
print '</pre>';
(此文是網上整理的,如有侵權,請聯絡本人,必刪)