Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen foo() und @foo() in PHP?

Was ist der Unterschied zwischen foo() und @foo() in PHP?

青灯夜游
青灯夜游Original
2021-05-08 18:49:013015Durchsuche

Der Unterschied zwischen „foo()“ und „@foo()“ in PHP: „@foo()“ ist die Fehlerkontrollausgabe, alle Fehler werden ignoriert und „foo()“ ist die normale Aufrufausgabe. „@“ ist der Fehlerunterdrücker, wenn er vor einem PHP-Ausdruck platziert wird, werden alle Fehlerberichte für den Ausdruck ignoriert.

Was ist der Unterschied zwischen foo() und @foo() in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Der Unterschied zwischen Operator Inspection Point Foo() und @foo()

@foo( ) ist die Fehlerkontrollausgabe, foo() ist die normale Aufrufausgabe.

@ ist ein Fehlerunterdrücker; wenn es vor einem PHP-Ausdruck platziert wird, werden alle Fehler im Ausdruck ignoriert. Es gibt Fehler für Ausdrücke, aber es gibt keine Auswirkungen auf die Anweisungsausführung , können Sie @ vor dem Ausdruck hinzufügen.

Sie können das @-Symbol vor Variablen, Funktionen, include()-Aufrufen, Konstanten usw. setzen, aber Sie können @ nicht vor die Definition von Funktionen und Klassen setzen, noch kann es vor bedingten Strukturanweisungen verwendet werden

z. B. if , switch, while, for und foreach usw.

Erweiterung: Testpunkte für alle PHP-Operatoren

1) PHP-Operatorpriorität (von hoch nach niedrig)

Inkrementieren/Dekrementieren
  • !!!
  • und
  • xor
  • or
  • Hinweis: Die Verwendung von Klammern kann die Lesbarkeit des Codes erhöhen. Es wird empfohlen,
  • 2) Vergleichsoperatoren zu verwenden: == und Der Unterschied zwischen ===
  • == vergleicht, ob die Werte gleich sind; === vergleicht, ob die Werte gleich sind und ob die Typen gleich sind.
  • Gleichwertiges Urteil (sieben Fälle von FALSCH)
  • if ('== false') {
  • echo '';
  • } elseif ('0' == 0) {
  • echo '';
}

Hinweis: Alle sieben Situationen von

FALSE sind erfüllt: =====的区别

  • == 比较值是否相等; === 比较值是否相等,类型是否相同。
  • 等值判断(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,后面不会执行【&&:一假为假】

||&&orandGanzzahl 0

Gleitkomma 0,0Null-String '0'

🎜leerer String'' "🎜🎜leeres Array array()🎜🎜null🎜🎜boolean false🎜🎜🎜🎜🎜🎜🎜3 ) inkrementieren/dekrementieren Betreiber 🎜 🎜🎜🎜🎜Inkrementierungs-/Dekrementierungsoperatoren haben keinen Einfluss auf boolesche Werte; // wahr🎜🎜falsch++; // falsch🎜🎜🎜🎜 Dekrementieren der Der NULL-Wert hat keine Auswirkung; das Erhöhen des NULL-Werts ist 1; Zuerst zurückkehren, dann Operationen ausführen🎜🎜🎜🎜🎜4) Logische Operatoren🎜🎜🎜① Kurzschlusseffekt🎜
// 先执行 false || true,得到 true,再赋值给 $a
$a = false || true; // $a = true;

// 先执行 $b = false,整体为 true,则 $b的值为 false
$b = false or true; // $b = false;
🎜② || und && und oder und und haben unterschiedliche Prioritäten🎜rrreee🎜Empfohlenes Lernen: „🎜PHP-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen foo() und @foo() in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn