今天我們參考php官方對php全局變量介紹來理解一下php全局變量一些用法與自己對它的一些思考吧,現(xiàn)在分享出來希望對各位同學(xué)有幫助。
一、核心要點(diǎn)思考:
1. 哪些全局變量是過期的及如何處理?
如:unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
2. 哪些全局變量有命令行下是無效的?
3. htmlspecialchars()用法, 為什么要用它?
4. $_REQUEST和 $_GET, $_POST,$_COOKIE的聯(lián)系與區(qū)別?
5. 為什么上傳了文件但$_FILES變量不存在或?yàn)榭眨?/p>
6. 全局變量的作用域?
7. 我想取得用戶的IP和瀏覽器的user_agent信息, 如何取?
8. 我沒有用瀏覽器, 我是 socket編程? 如何保持session?
9. 如何取得headers信息?
php九大全局預(yù)定義數(shù)組
超全局變量 — 超全局變量是在全部作用域中始終可用的內(nèi)置變量
$GLOBALS — 引用全局作用域中可用的全部變量
$_SERVER — 服務(wù)器和執(zhí)行環(huán)境信息
$_GET — HTTP GET 變量
$_POST — HTTP POST 變量
$_FILES — HTTP 文件上傳變量
$_REQUEST — HTTP Request 變量
$_SESSION — Session 變量
$_ENV — 環(huán)境變量
$_COOKIE — HTTP Cookies
$php_errormsg — 前一個錯誤信息
$HTTP_RAW_POST_DATA — 原生POST數(shù)據(jù)
$http_response_header — HTTP 響應(yīng)頭
$argc — 傳遞給腳本的參數(shù)數(shù)目
$argv — 傳遞給腳本的參數(shù)數(shù)組
二、主要問題
PHP基礎(chǔ)篇總結(jié)題目:
1. var_dump(0=="ads");請問該條語句結(jié)果是怎樣的?為什么?
答:此語句結(jié)果為true;
此表達(dá)式中右側(cè)的字符串默認(rèn)強(qiáng)制轉(zhuǎn)換為int數(shù)據(jù)0,與左側(cè)數(shù)據(jù)相同,所以輸出true,如果是“===”,則會輸出false,這是因?yàn)樗麄冾愋筒煌狄膊煌谶@里不會強(qiáng)制轉(zhuǎn)換。
點(diǎn)評:這個真不好說, 測試一下吧! var_dump()打印表達(dá)式的結(jié)果! 這個實(shí)際考的是表達(dá)式運(yùn)算。
2.異常可以被克隆嗎?
答:不可以。
3.PHP中 Traits有什么特性?
答:Traits (橫向重用/多重繼承)是一組結(jié)構(gòu)很像類的方法,但它但不能實(shí)例化,它可以讓開發(fā)人員在不同的類中輕松地重用方法;
Traits的最佳應(yīng)用是多類之間可以共享相同的函數(shù);靜態(tài)變量可以被 trait 的方法引用,但不能被 trait 定義。但是 trait 能夠?yàn)槭褂玫念惗x靜態(tài)方法;如果 trait 定義了一個屬性,那類將不能定義同樣名稱的屬性,否則會產(chǎn)生一個錯誤;
總結(jié):提的問題好,回答的也挺好
1、有哪些超全局變量?答:超全局變量:$GLOBALS、$_SERVER、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV
2、瀏覽器把cookie給禁用了,$_SESSION還能用嗎? 答:不能用了
3、$php_errormsg在什么時候都可用嗎?答:不是,這個變量只在錯誤發(fā)生的作用域內(nèi)可用,并且要求track_errors配置項(xiàng)是開啟的(默認(rèn)是關(guān)閉的)。
有個人性化的面試問題
寫30個php字符串函數(shù)。
實(shí)例如下:
1、命名空間必須是程序腳本的第一條語句嗎?
答案:yes
2、如何取消引用?
答案:unset();
3、如果一個類,它里面至少有一個方法是被聲明為抽象的,那么這個類就必須被聲明為抽象類嗎?繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法嗎?
答案:如果一個類中有抽象方法,類必須定義為抽象類,繼承一個抽象類時,子類必須定義父類中的所有抽象方法。
1.如何得到文件的絕對路徑
使用realpath() 函數(shù),返回絕對路徑名。若失敗,則返回 false,比如說文件不存在。
echo realpath("test.txt");
輸出:C:wwwtestwebtest.txt
2.session的工作原理
session保存在服務(wù)端,但會以cookie的形式保存在客戶端一個sessionid,如果禁用cookie,就需要用get方法的URL重寫的機(jī)制或使用POST方法提交隱藏表單的形式來實(shí)現(xiàn)。
點(diǎn)評: 是這個原理, 但一般有web服務(wù)器會自動完成這個功能, 不需要在程序中添加。
3.public static聲明的函數(shù)是靜態(tài)方法嗎?
public static聲明的函數(shù)是靜態(tài)方法,可以直接在類外用,類名::函數(shù)名的方法調(diào)用 不用采用NEW聲明的方式
注意:函數(shù)內(nèi)不能有動態(tài)內(nèi)容 如$this->之類的,一般來說 需要頻繁執(zhí)行的內(nèi)容 用STATIC聲明
總結(jié):session的工作原理整理的很好,分析很透徹。希望以后積極點(diǎn),繼續(xù)努力