php的一些易錯點

1.單引號與雙引號的區(qū)別

一般用單引號或雙引號標識一個字符串牵署。單引號串與雙引號串篱蝇,在PHP中的處理是不同的辫诅。雙引號中的內(nèi)容可以被解釋并被替換,單引號串中的內(nèi)容則被作為普通字符處理佩抹。

例如:

$str=6;

echo "str is $str\n";

echo 'str is $str\n';

注:單引號中輸出的內(nèi)容是“所見即所得”的叼风,無論有無變量,都被當做普通字符原樣輸出棍苹。

說明:在定義簡單的字符串時无宿,使用單引號是一個更加合適的處理方式。如果使用雙引號枢里,php將花費一下時間來處理字符串的轉(zhuǎn)義和變量的解析孽鸡。因此,建議在定義字符串時栏豺,如果沒有特別的要求應盡量使用單引號彬碱。

2.注意echo和print的區(qū)別

PHP中echo和print都是輸出的作用,但是兩者之間還是有細微的差別奥洼。echo輸出后沒有返回值巷疼,但print有返回值,當其執(zhí)行失敗時返回flase灵奖。因此可以作為一個普通函數(shù)來使用嚼沿,例如執(zhí)行$r = print "Hello World"; 變量$r的值將為1。而且代碼中echo語句的運行效率要略快于print語句瓷患。

3.注意空字符串('')和NULL的區(qū)別

PHP中空字符串和NULL都是以值為0存儲的骡尽,但是他們的類型并不一樣,前者是string擅编,而后者是NULL爆阶,可見字符串('')、NULL值相等但類型不等沙咏。

4.分清==(等于)和===(全等于)的區(qū)別

兩者都屬于比較運算符辨图,==(等于)只比較值是否相等,而===(全等于)則不但比較值是否相等肢藐,還會比較類型是否相等故河,它更為嚴格。

5.分清self :: 和 this-> 的區(qū)別

在訪問PHP類中的成員變量或方法時吆豹,如果被引用的變量或者方法被聲明成const(常量)或者static(靜態(tài)屬性)鱼的,那么就必須使用域操作符::,而如果被引用的變量或者方法沒有被聲明成const或者static痘煤,那么就使用指向操作符->凑阶。

6.require 與include的區(qū)別

引用文件的方法有兩種:require 及 include。兩種方式提供不同的使用彈性衷快。

require的使用方法如require("MyRequireFile.php");宙橱。這個函數(shù)通常放在 PHP 程序的最前面,PHP 程序在執(zhí)行前,就會先讀入 require 所指定引入的文件师郑,使它變成 PHP 程序網(wǎng)頁的一部份环葵。常用的函數(shù),亦可以這個方法將它引入網(wǎng)頁中宝冕。

include使用方法如include("MyIncludeFile.php");张遭。這個函數(shù)一般是放在流程控制的處理部分中。PHP 程序網(wǎng)頁在讀到 include 的文件時地梨,才將它讀進來菊卷。這種方式,可以把程序執(zhí)行時的流程簡單化宝剖。

他們兩個的用途是完全一樣的的烁,不一定非得哪個放在最前面哪個放在中間。他們最根本的區(qū)別在于錯誤處理的方式不一樣诈闺。

require一個文件存在錯誤的話渴庆,那么程序就會中斷執(zhí)行了,并顯示致命錯誤

include一個文件存在錯誤的話雅镊,那么程序不會中端襟雷,而是繼續(xù)執(zhí)行,并顯示一個警告錯誤仁烹。

以下為補充:

(1). include有返回值耸弄,而require沒有。

(2). include()包括并運行指定文件 在處理失敗時include() 產(chǎn)生一個警告,被導入的程序代碼都會被執(zhí)行卓缰,而且這些程序在執(zhí)行的時候會擁有和源文件中呼叫到include()語句的位置相同的變量范圍计呈。你可以導入同一個服務器中的靜態(tài)頁面。

(3). include_once()的作用和include()是幾乎相同的

唯一的差別在于include_once()會先檢查要導入的檔案是不是已經(jīng)在該程序中的其它地方被導入過了征唬,如果有的話就不會再次重復導入(這項功能有時候是很重要的捌显,比方說要導入的里面宣告了一些你自行定義好的函數(shù),那么如果在同一個程序重復導入這個文件总寒,在第二次導入的時候便會發(fā)生錯誤訊息扶歪,因為PHP不允許相同名稱的函數(shù)被重復宣告第二次)。

(4). require()會將目標文件的內(nèi)容讀入摄闸,并且把自己本身代換成這些讀入的內(nèi)容 在處理失敗時require() 則導致一個致命錯善镰。

這個讀入并且代換的動作是在PHP引擎編譯你的程序代碼的時候發(fā)生的,而不是發(fā)生在PHP引擎開始執(zhí)行編譯好的程序代碼的時候(PHP 3.0引擎的工作方式是編譯一行執(zhí)行一行年枕,但是到了PHP 4.0以后就有所改變了炫欺,PHP 4.0是先把整個程序代碼全部編譯完成后,再將這些編譯好的程序代碼一次執(zhí)行完畢熏兄,在編譯的過程中不會執(zhí)行任何程序代碼)品洛。require()通常來導入靜態(tài)的內(nèi)容树姨,而include()則適合用導入動態(tài)的程序代碼。

(5). 如同include_once()毫别,require_once()會先檢查目標文件的內(nèi)容是不是在之前就已經(jīng)導入過了,如果是的話典格,便不會再次重復導入同樣的內(nèi)容岛宦。

(6). require是無條件包含也就是如果一個流程里加入require,無論條件成立與否都會先執(zhí)行require。

(7). require通常放在PHP程序的最前面耍缴,PHP程序在執(zhí)行前砾肺,就會先讀入require所指定引入的文件,使它變成PHP程序網(wǎng)頁的一部份防嗡。常用的函數(shù)变汪,亦可以這個方法將它引入網(wǎng)頁中。

(8). include一般是放在流程控制的處理部分中PHP程序網(wǎng)頁在讀到include的文件時蚁趁,才將它讀進來裙盾。這種方式可以把程序執(zhí)行時的流程簡單化。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末他嫡,一起剝皮案震驚了整個濱河市番官,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钢属,老刑警劉巖徘熔,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淆党,居然都是意外死亡酷师,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門染乌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來山孔,“玉大人,你說我怎么就攤上這事荷憋”バ耄” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵台谊,是天一觀的道長蓉媳。 經(jīng)常有香客問我,道長锅铅,這世上最難降的妖魔是什么酪呻? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮盐须,結(jié)果婚禮上玩荠,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好阶冈,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布闷尿。 她就那樣靜靜地躺著,像睡著了一般女坑。 火紅的嫁衣襯著肌膚如雪填具。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天匆骗,我揣著相機與錄音劳景,去河邊找鬼。 笑死碉就,一個胖子當著我的面吹牛盟广,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓮钥,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼筋量,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碉熄?” 一聲冷哼從身側(cè)響起毛甲,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎具被,沒想到半個月后玻募,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡一姿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年七咧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叮叹。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡艾栋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛉顽,到底是詐尸還是另有隱情蝗砾,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布携冤,位于F島的核電站悼粮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏曾棕。R本人自食惡果不足惜扣猫,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翘地。 院中可真熱鬧申尤,春花似錦癌幕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至时鸵,卻和暖如春胶逢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寥枝。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工宪塔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磁奖,地道東北人囊拜。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像比搭,于是被迫代替她去往敵國和親冠跷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容