首頁 >後端開發 >PHP問題 >php中foo()和@foo()的差別是什麼

php中foo()和@foo()的差別是什麼

青灯夜游
青灯夜游原創
2021-05-08 18:49:013038瀏覽

php中「foo()」和「@foo()」的差異:「@foo()」是錯誤控制輸出,其所有錯誤會被忽略,「foo()」是正常呼叫輸出。 “@”是錯誤抑制符,當放在一個php表達式之前,該表達式的所有錯誤報告會被忽略。

php中foo()和@foo()的差別是什麼

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

##運算符考察點Foo()和@foo()的區別

@foo() 是錯誤控制輸出,foo()是正常呼叫輸出。

@是錯誤抑制符;當放在一個php表達式之前,該表達式的所有錯誤會被忽略;

@符號在PHP 中可以忽略錯誤報告,對於表達式有提示錯誤的,但有不影響語句執行的,可以在表達式之前加@。

可以把@符號放在變數、函數和include()  呼叫、常數等之前,但不能把@放在函數、類別的定義之前,也不能用於條件結構語句之前

eg:if 、switch、while、for和foreach等


#1) PHP運算子優先權(從高到低)

    遞增/ 遞減
  • !

  • #算術運算子
    大小比較
    (不)相等比較

    引用
    位元運算子(^)
  • 位元運算子(|)
邏輯與

邏輯或

    三目
    • 賦值
    • and
    • xor
    • or
    • 附註:括號的使用可以增加程式碼可讀性,推薦使用
2) 比較運算子:
==

===的區別

    • #== 比較值是否相等; === 比較值是否相等,類型是否相同。
    • 等值判斷(FALSE的七種情況)
    • if ('== false') {
    • echo '';
    • } elseif ('0' == 0 ) {
    • echo '';
    } elseif (0.0 == 0) {
  • echo '';## }
    • 註:
  • FALSE的七種情況都滿足:
整數型0

浮點型0.0零字串'0'

空字串'' "

空數組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,后面不会执行【|| : 一真为真】
$b = false && $a == 1; // 前面是 false,后面不会执行【&&:一假为假】
###② ###||### 和###&## 與###or### 和###and### 的優先權不同###
// 先执行 false || true,得到 true,再赋值给 $a
$a = false || true; // $a = true;

// 先执行 $b = false,整体为 true,则 $b的值为 false
$b = false or true; // $b = false;
###推薦學習:《###PHP影片教學###》###

以上是php中foo()和@foo()的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn