php的一些易錯點

2021-08-04 02:41:24 字數 2351 閱讀 9391

1.單引號與雙引號的區別

一般用單引號或雙引號標識乙個字串。單引號串與雙引號串,在php中的處理是不同的。雙引號中的內容可以被解釋並被替換,單引號串中的內容則被作為普通字元處理。

例如:

注:單引號中輸出的內容是「所見即所得」的,無論有無變數,都被當做普通字元原樣輸出。

說明:在定義簡單的字串時,使用單引號是乙個更加合適的處理方式。如果使用雙引號,php將花費一下時間來處理字串的轉義和變數的解析。因此,建議在定義字串時,如果沒有特別的要求應盡量使用單引號。

2.注意echo和print的區別

php中echo和print都是輸出的作用,但是兩者之間還是有細微的差別。echo輸出後沒有返回值,但print有返回值,當其執行失敗時返回flase。因此可以作為乙個普通函式來使用,例如執行$r = print "hello world"; 變數$r的值將為1。而且**中echo語句的執行效率要略快於print語句。

3.注意空字串('')和null的區別

php中空字串和null都是以值為0儲存的,但是他們的型別並不一樣,前者是string,而後者是null,可見字串('')、null值相等但型別不等。

4.分清==(等與)和===(全等與)的區別

兩者都屬於比較運算子,==(等於)只比較值是否相等,而===(全等於)則不但比較值是否相等,還會比較型別是否相等,它更為嚴格。

5.分清self :: 和 this-> 的區別

在訪問php類中的成員變數或方法時,如果被引用的變數或者方法被宣告成const(常量)或者static(靜態屬性),那麼就必須使用域操作符::,而如果被引用的變數或者方法沒有被宣告成const或者static,那麼就使用指向操作符->。

引用檔案的方法有兩種:require 及 include。兩種方式提供不同的使用彈性。

require的使用方法如require("myrequirefile.php");。這個函式通常放在 php 程式的最前面,php 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 php 程式網頁的一部份。常用的函式,亦可以這個方法將它引入網頁中。

include使用方法如include("myincludefile.php");。這個函式一般是放在流程控制的處理部分中。php 程式網頁在讀到 include 的檔案時,才將它讀進來。這種方式,可以把程式執行時的流程簡單化。

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

require乙個檔案存在錯誤的話,那麼程式就會中斷執行了,並顯示致命錯誤

include乙個檔案存在錯誤的話,那麼程式不會中端,而是繼續執行,並顯示乙個警告錯誤。

以下為補充:

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

(2). include()包括並執行指定檔案 在處理失敗時include() 產生乙個警告,被匯入的程式**都會被執行,而且這些程式在執行的時候會擁有和原始檔中呼叫到include()語句的位置相同的變數範圍。你可以匯入同乙個伺服器中的靜態頁面。

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

唯一的差別在於include_once()會先檢查要匯入的檔案是不是已經在該程式中的其它地方被匯入過了,如果有的話就不會再次重複匯入(這項功能有時候是很重要的,比方說要匯入的裡面宣告了一些你自行定義好的函式,那麼如果在同乙個程式重複匯入這個檔案,在第二次匯入的時候便會發生錯誤訊息,因為php不允許相同名稱的函式被重複宣告第二次)。

(4). require()會將目標檔案的內容讀入,並且把自己本身代換成這些讀入的內容 在處理失敗時require() 則導致乙個致命錯。

這個讀入並且代換的動作是在php引擎編譯你的程式**的時候發生的,而不是發生在php引擎開始執行編譯好的程式**的時候(php 3.0引擎的工作方式是編譯一行執行一行,但是到了php 4.0以後就有所改變了,php 4.0是先把整個程式**全部編譯完成後,再將這些編譯好的程式**一次執行完畢,在編譯的過程中不會執行任何程式**)。require()通常來匯入靜態的內容,而include()則適合用匯入動態的程式**。

(5). 如同include_once(),require_once()會先檢查目標檔案的內容是不是在之前就已經匯入過了,如果是的話,便不會再次重複匯入同樣的內容。

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

(7). require通常放在php程式的最前面,php程式在執行前,就會先讀入require所指定引入的檔案,使它變成php程式網頁的一部份。常用的函式,亦可以這個方法將它引入網頁中。

(8). include一般是放在流程控制的處理部分中php程式網頁在讀到include的檔案時,才將它讀進來。這種方式可以把程式執行時的流程簡單化。

php一些易錯點

1.在函式外宣告的引數為global,在函式內呼叫時,需加上global x 100 function test 2.型別為弱型別,不用強制宣告其型別 3.常量使用define函式宣告,在使用時不需要加上 符號 define pi 3.1416926 echo pi 4.不僅比較值還有型別 5.fo...

php的一些易錯點

一般用單引號或雙引號標識乙個字串。單引號串與雙引號串,在php中的處理是不同的。雙引號中的內容可以被解釋並被替換,單引號串中的內容則被作為普通字元處理。例如 str 6 echo str is str n echo str is str n 注 單引號中輸出的內容是 所見即所得 的,無論有無變數,都...

1006 1015一些易錯點

1010 計算分數的浮點數值 時間限制 1000 ms 記憶體限制 65536 kb 提交數 27986 通過數 16833 題目描述 兩個整數a和b分別作為分子和分母,既分數a b,求它的浮點數值 雙精度浮點數,保留小數點後9位 輸入 輸入僅一行,包括兩個整數a和b。輸出 輸出也僅一行,分數 a ...