PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记
今天我們參考php官方對(duì)php全局變量介紹來(lái)理解一下php全局變量一些用法與自己對(duì)它的一些思考吧,現(xiàn)在分享出來(lái)希望對(duì)各位同學(xué)有幫助。
一、核心要點(diǎn)思考:
1. 哪些全局變量是過(guò)期的及如何處理?
如:unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
2.哪些全局變量有命令行下是無(wú)效的?
3. htmlspecialchars()用法, 為什么要用它?
4. $_REQUEST和 $_GET, $_POST,$_COOKIE的聯(lián)系與區(qū)別?
5. 為什么上傳了文件但$_FILES變量不存在或?yàn)榭?#xff1f;
6. 全局變量的作用域?
7. 我想取得用戶的IP和瀏覽器的user_agent信息, 如何取?
8. 我沒(méi)有用瀏覽器, 我是 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 — 前一個(gè)錯(cuò)誤信息
$HTTP_RAW_POST_DATA — 原生POST數(shù)據(jù)
$http_response_header — HTTP 響應(yīng)頭
$argc — 傳遞給腳本的參數(shù)數(shù)目
$argv — 傳遞給腳本的參數(shù)數(shù)組
二、主要問(wèn)題
====================================
PHP基礎(chǔ)篇總結(jié)題目:
1>. var_dump(0=="ads");請(qǐng)問(wèn)該條語(yǔ)句結(jié)果是怎樣的?為什么?
答:此語(yǔ)句結(jié)果為true;
此表達(dá)式中右側(cè)的字符串默認(rèn)強(qiáng)制轉(zhuǎn)換為int數(shù)據(jù)0,與左側(cè)數(shù)據(jù)相同,所以輸出true,如果是“===”,則會(huì)輸出false,這是因?yàn)樗麄冾?lèi)型不同,值也不同,在這里不會(huì)強(qiáng)制轉(zhuǎn)換。
點(diǎn)評(píng):這個(gè)真不好說(shuō), 測(cè)試一下吧! var_dump()打印表達(dá)式的結(jié)果! 這個(gè)實(shí)際考的是表達(dá)式運(yùn)算。
2>.異常可以被克隆嗎?
答:不可以。
3>.PHP中 Traits有什么特性?
答:Traits (橫向重用/多重繼承)是一組結(jié)構(gòu)很像類(lèi)的方法,但它但不能實(shí)例化,它可以讓開(kāi)發(fā)人員在不同的類(lèi)中輕松地重用方法;
Traits的最佳應(yīng)用是多類(lèi)之間可以共享相同的函數(shù);
靜態(tài)變量可以被 trait 的方法引用,但不能被 trait 定義。但是 trait 能夠?yàn)槭褂玫念?lèi)定義靜態(tài)方法;
如果 trait 定義了一個(gè)屬性,那類(lèi)將不能定義同樣名稱的屬性,否則會(huì)產(chǎn)生一個(gè)錯(cuò)誤;
總結(jié): 提的問(wèn)題好,回答的也挺好
=====================================
1、有哪些超全局變量?答:超全局變量:$GLOBALS、$_SERVER、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_REQUEST、$_ENV
2、瀏覽器把cookie給禁用了,$_SESSION還能用嗎? 答:不能用了
點(diǎn)評(píng): 答錯(cuò)了, 能用! apache有自動(dòng)的功能將session_id放在get參數(shù)。
3、$php_errormsg在什么時(shí)候都可用嗎?答:不是,這個(gè)變量只在錯(cuò)誤發(fā)生的作用域內(nèi)可用,并且要求track_errors配置項(xiàng)是開(kāi)啟的(默認(rèn)是關(guān)閉的)。
總結(jié): 很積極,回答能夠在豐滿一點(diǎn)比較好
========================================
有個(gè)人性化的面試問(wèn)題
寫(xiě)30個(gè)php字符串函數(shù)。
例:
trim()????? 去掉字符串中的空格
chop()??????? 從右向左,刪除指定字符? ,參數(shù)? rtrim(string,find);
rtrim()???? 從右向左,刪除指定字符? ,參數(shù)? rtrim(string,find);
chr()?????? 返回字符的 asc2 碼
var_dump()??? 打印一個(gè)值,可以是任何形式,并返回值的屬性
print()??????? 打印數(shù)組或字符串
print_r()???? 把字符串和數(shù)字簡(jiǎn)單地打印出來(lái),而數(shù)組則以括起來(lái)的鍵和值得列表形式顯示
chunk_split()??? 把字符串分割為一連串更小的部分
implode()??? 把數(shù)組元素組合為一個(gè)字符串
join()??????? 把數(shù)組元素組合為一個(gè)字符串
explode()??? 把字符串分割成數(shù)組
md5()??????? 返回一個(gè)md5值,不可逆
strlen()??? 獲取一個(gè)字符串的長(zhǎng)度
str_replace??? 替換字符串中的一些字符
mb_substr??? mb擴(kuò)展的截取字符串函數(shù),格式:mb_substr(string,start_Num,end_Num,'utf-8')
str_split???? 將一個(gè)字符串按照字符間距分割為一個(gè)數(shù)組
strpos???????? 查找并返回首個(gè)匹配項(xiàng)的位置
strtr??????? 轉(zhuǎn)換字符串中特定的字符
substr???????? 對(duì)字符串進(jìn)行截取
substr_count???? 計(jì)算字符串中某字符段的出現(xiàn)次數(shù)
substr_replace? 對(duì)字符串中的部分字符進(jìn)行替換
wordwrap??? 函數(shù)按照指定長(zhǎng)度對(duì)字符串進(jìn)行折行處理
addcslashes()??? 在指定的字符前添加反斜杠
strtolower()??? 把字符串轉(zhuǎn)換為小寫(xiě)
strtoupper()??? 把字符串轉(zhuǎn)換為大寫(xiě)
strrev()??? 反轉(zhuǎn)字符串
strripos()??? 查找字符串在另一字符串中最后出現(xiàn)的位置(大小寫(xiě)不敏感)
strrpos()??? 查找字符串在另一字符串中最后出現(xiàn)的位置(大小寫(xiě)敏感)
strspn()??? 返回在字符串中包含的特定字符的數(shù)目
ucwords()??? 把字符串中每個(gè)單詞的首字符轉(zhuǎn)換為大寫(xiě)
str_repeat()??? 把字符串重復(fù)指定的次數(shù)
...
=======================================
1、命名空間必須是程序腳本的第一條語(yǔ)句嗎?
答案:yes
2、如何取消引用?
答案:unset();
3、如果一個(gè)類(lèi),它里面至少有一個(gè)方法是被聲明為抽象的,那么這個(gè)類(lèi)就必須被聲明為抽象類(lèi)嗎?繼承一個(gè)抽象類(lèi)的時(shí)候,子類(lèi)必須定義父類(lèi)中的所有抽象方法嗎?
答案:如果一個(gè)類(lèi)中有抽象方法,類(lèi)必須定義為抽象類(lèi),繼承一個(gè)抽象類(lèi)時(shí),子類(lèi)必須定義父類(lèi)中的所有抽象方法。
========================================
1.如何得到文件的絕對(duì)路徑
使用realpath() 函數(shù),返回絕對(duì)路徑名。若失敗,則返回 false,比如說(shuō)文件不存在。
echo realpath("test.txt");
輸出:
C:wwwtestwebtest.txt
2.session的工作原理
session保存在服務(wù)端,但會(huì)以cookie的形式保存在客戶端一個(gè)sessionid,如果禁用cookie,就需要用get方法的URL重寫(xiě)的機(jī)制或使用POST方法提交隱藏表單的形式來(lái)實(shí)現(xiàn)。
點(diǎn)評(píng): 是這個(gè)原理, 但一般有web服務(wù)器會(huì)自動(dòng)完成這個(gè)功能, 不需要在程序中添加。
3.public static聲明的函數(shù)是靜態(tài)方法嗎?
public static聲明的函數(shù)是靜態(tài)方法,可以直接在類(lèi)外用,類(lèi)名::函數(shù)名的方法調(diào)用 不用采用NEW聲明的方式
注意:函數(shù)內(nèi)不能有動(dòng)態(tài)內(nèi)容 如$this->之類(lèi)的
一般來(lái)說(shuō) 需要頻繁執(zhí)行的內(nèi)容 用STATIC聲明
總結(jié): session的工作原理整理的很好,分析很透徹。希望以后積極點(diǎn),繼續(xù)努力
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的PHP引用全局作用域中可用的全部变量是,php全局变量之学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LoadRunner远程监测Centos
- 下一篇: php sublime 插件安装教程,【