php中“foo()”和“@foo()”的區(qū)別:“@foo()”是錯誤控制輸出,其所有錯誤會被忽略,“foo()”是正常調(diào)用輸出?!癅”是錯誤抑制符,當放在一個php表達式之前,該表達式的所有錯誤報告會被忽略。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
運算符考察點 Foo()和@foo()的區(qū)別
@foo() 是錯誤控制輸出,foo()是正常調(diào)用輸出。
@是錯誤抑制符;當放在一個php表達式之前,該表達式的所有錯誤會被忽略;
@符號在PHP 中可以忽略錯誤報告,對于表達式有提示錯誤的,但有不影響語句執(zhí)行的,可以在表達式之前加@。
可以把@符號放在變量、函數(shù)和include() 調(diào)用、常量等之前,但不能把@放在函數(shù)、類的定義之前,也不能用于條件結(jié)構語句之前
eg:if 、switch、while、for和foreach等
延伸:PHP所有運算符考點
1) PHP運算符優(yōu)先級(從高到低)
- 遞增 / 遞減
- !
- 算術運算符
- 大小比較
- (不)相等比較
- 引用
- 位運算符(^)
- 位運算符(|)
- 邏輯與
- 邏輯或
- 三目
- 賦值
- and
- xor
- or
注:括號的使用可以增加代碼可讀性,推薦使用
2) 比較運算符:==
和 ===
的區(qū)別
- == 比較值是否相等; === 比較值是否相等,類型是否相同。
- 等值判斷(FALSE的七種情況)
if (’== false’) {
echo ‘’;
} elseif (‘0’ == 0) {
echo ‘’;
} elseif (0.0 == 0) {
echo ‘’;
}
注:
- FALSE的七種情況都滿足:
- 整型 0
- 浮點型 0.0
- 零字符串 ‘0’
- 空字符串 ‘’ "
- 空數(shù)組 array()
- null
- 布爾型 false
3) 遞增/遞減運算符
- 遞增/遞減運算符不影響布爾值;
- true++; // true
- true–; // true
- false++ ; // false
- false–; // false
- 遞減NULL值沒有效果;遞增NULL值為1;
- NULL–; // NULL
- NULL++; // 1
- 遞增和遞減在前,就先運算,后返回;反之就先返回,后運算
4) 邏輯運算符
① 短路作用
$a = true || $b == 3; // 前面是 true,后面不會執(zhí)行【|| : 一真為真】 $b = false && $a == 1; // 前面是 false,后面不會執(zhí)行【&&:一假為假】
② ||
和 &&
與 or
和 and
的優(yōu)先級不同
// 先執(zhí)行 false || true,得到 true,再賦值給 $a $a = false || true; // $a = true; // 先執(zhí)行 $b = false,整體為 true,則 $b的值為 false $b = false or true; // $b = false;
推薦學習:《PHP視頻教程》