PHP中幾個容易混淆的函式的區別

2021-09-30 07:07:27 字數 1294 閱讀 5363

php中有一些函式的功能十分接近,容易造成混淆。雖然功能相當,但在細節問題上可能會有很大出入。所以,如果使用不當,可能會造成一些不必要的麻煩。以下整理了幾個日常使用中容易混淆的函式,以備查閱。

1. echo、print、print_r、printf、vprintf和sprintf

echo用於輸出乙個或多個字串。它實際上並不是函式,而是乙個語言結構,所以它並沒有返回值。當列印多個變數時,不能像函式呼叫那樣使用括號。

print用於輸出乙個字串,有返回值(始終返回int(1))

print_r用於列印關於乙個變數的易於理解的資訊。如果給出的引數是string、integer或float,將列印變數值本身。如果是array,將按照一定的格式顯示鍵和元素。object與陣列類似。

printf用於輸出乙個格式化的字串,返回輸出字串的長度

vprintf用於輸出乙個格式化的字串,但其接受的引數為乙個陣列,返回輸出字串的長度

sprintf用於返回乙個格式化的字串,不進行輸出操作

2. require、include、require_once和include_once

require()和include()幾乎完全一樣,除了處理失敗的方式不同之外。include()產生乙個warning而require()則導致乙個fatal error。所以,如果想在丟失檔案時停止處理頁面,則應該用require()。

require_once()和include_once()應用於在指令碼執行期間同乙個檔案有可能被包含超過一次的情況下,想確保它只被包含一次以避免函式重定義,變數重新賦值等問題。

3. empty與isset

empty用於檢查乙個變數是否為空,如果待檢測變數時非空或非零的值,將返回false。換句話說,""、0、"0"、null、false、array()以及沒有任何屬性的物件都將被認為是空的。

isset用於檢測變數是否已設定。以下三種情況將返回false:變數不存在、變數已被unset()釋放、變數被設定為null

4. htmlentities與htmlspecialchars

htmlentities會將所有的字元都轉換成html實體字元,在中文情況下會造成亂碼

htmlspecialchars只轉換幾個特殊的字元,包括:&、"、'、《以及》

5. urlencode與rawurlencode

urlencode返回字串,此字串中除了-_.之外的所有非字母數字字元都將被替換成百分號(%)後跟兩位十六進製制數,空格則編碼為加號(+)。

rawurlencode按照rfc1738對url進行編碼。與urlencode的區別是,它會將空格編碼為'20%'。

容易混淆的幾個方法

size x large 現在覺得有些東西非常容易搞混淆現在把他記錄下來 size request方法的 getrequesturl 返回的是 返回的是 blueyanghualongserlvet login.jsp 資源名稱 getcontextpath 返回的是 blueyanghaulogn...

幾個容易混淆的方法

一 splice 1 定義和用法 splice 方法向 從陣列中新增 刪除專案,然後返回被刪除的專案。注釋 該方法會改變原始陣列。2 語法 arrayobject.splice index,howmany,item1,itemx 引數描述 index 必需。整數,規定新增 刪除專案的位置,使用負數可...

JS中容易混淆的函式

易混點記憶 僅供自己記憶使用 查詢 增刪 合併 翻轉 排序 不改變原陣列 slice 開始下標,結束下標 包括開始下標,不包括結束下標 改變原陣列 push 尾部新增 pop 尾部刪除 unshift 頭部新增 shift 頭部刪除 splice 開始下標,刪除的個數,新增的字元 從開始下標刪除,第...