Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Syntax: Dekodieren der Bedeutung hinter Symbolen


Was ist das?

Dies ist eine Sammlung von Fragen zur PHP-Syntax, die von Zeit zu Zeit auftauchen. Dies ist auch ein Community-Wiki, daher ist jeder eingeladen, sich an der Pflege dieser Liste zu beteiligen.

Warum ist das so?

Früher war es schwierig, Fragen zu Operatoren und anderen Syntaxmarkierungen zu finden. ¹

Die Hauptidee besteht darin, Links zu vorhandenen Fragen zu Stack Overflow bereitzustellen, damit wir leichter darauf verweisen können, anstatt Inhalte aus dem PHP-Handbuch zu kopieren.

Hinweis: Seit Januar 2013 unterstützt Stack Overflow Sonderzeichen. Setzen Sie Ihren Suchbegriff einfach in Anführungszeichen, z. B. [php]“==”与“===”

Was soll ich hier tun?

Wenn Sie von jemandem hierher verwiesen wurden, weil Sie eine Frage wie diese gestellt haben, achten Sie unten auf die spezifische Syntax. Die verlinkte Seite des PHP-Handbuchs und die verlinkte Frage könnten Ihre Frage beantworten. Wenn ja, empfehlen wir Ihnen, für die Antwort zu stimmen. Diese Liste ist kein Ersatz für die Hilfe anderer.

Liste

Wenn Ihr spezifisches Token unten nicht aufgeführt ist, finden Sie es möglicherweise in der Parser-Token-Liste.


& Bitoperatoren oder Referenzen


=&Referenzen


&= bitweise Operatoren


&& Logische Operatoren


% Arithmetische Operatoren


!! Logische Operatoren


@ Fehlerkontrolloperator


?: Ternärer Operator


Doppeltes Fragezeichen

?? Null-Koaleszenzoperator (seit PHP 7)


Fragezeichen gefolgt von Typdeklaration

?string ?int ?array ?bool ?float Nullable-Typdeklaration (seit PHP 7.1)


?-> Ein Fragezeichen gefolgt von einem Objektoperator ist der NullSafe-Operator (seit PHP 8.0)


: Alternative Syntax für Kontrollstrukturen, ternäre Operatoren, Rückgabetypdeklarationen


:: Bereichsauflösungsoperator


Namensraum


-> Klassen und Objekte


=> Array


^ bitweise Operatoren


>> bitweise Operatoren


<< bitweise Operatoren


<<< Heredoc oder Nowdoc


= Zuweisungsoperator


== Vergleichsoperatoren


=== Vergleichsoperatoren


!== Vergleichsoperatoren


!= Vergleichsoperatoren


<>Vergleichsoperatoren


<=> Vergleichsoperatoren (seit PHP 7.0)


| bitweise Operatoren


|| Logische Operatoren


~ bitweise Operatoren


+ Arithmetische Operatoren, Array-Operatoren


+=-= Zuweisungsoperator


++--Operator zum Erhöhen/Verringern


.= Zuweisungsoperator


. String-Operatoren


, Funktionsparameter

,Variablendeklaration


$$VariablenVariablen


Ausführungsoperator`


Kurzes offenes Tag<?=


Array (kurze Syntax seit PHP 5.4) []


Tags öffnen und schließen<?


Doppelpunkt-Zeichenbereich..


Parameter-Entpacken (seit PHP 5.6) ...


Potenzierung (seit PHP 5.6)**


Einzeiliger Kommentar im Shell-Stil#


Eigenschaften (seit PHP 8) #[]



P粉893457026P粉893457026344 Tage vor656

Antworte allen(2)Ich werde antworten

  • P粉298305266

    P粉2983052662023-10-11 11:48:43

    按位运算符

    什么是一点?位代表 1 或 0。基本上是 OFF(0) 和 ON(1)

    什么是字节?一个字节由 8 位组成,一个字节的最高值为 255,这意味着每个位都被设置。我们将看看为什么一个字节的最大值是 255。

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------

    这表示1个字节

    1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255(1 字节)

    一些有助于更好理解的示例

    “AND”运算符:&

    $a =  9;
    $b = 10;
    echo $a & $b;

    这将输出数字 8。为什么?好吧,让我们看看使用我们的表格示例。

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------
    |      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
    -------------------------------------------
    |      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
    ------------------------------------------- 
    |      &     |   0|  0|  0|  0| 1| 0| 0| 0|
    -------------------------------------------

    所以你可以从表中看到它们唯一共享的位是 8 位。

    第二个例子

    $a =  36;
    $b = 103;
    echo $a & $b; // This would output the number 36.
    $a = 00100100
    $b = 01100111

    两个共享位是 32 和 4,相加后返回 36。

    “或”运算符:|

    $a =  9;
    $b = 10;
    echo $a | $b;

    这将输出数字 11。为什么?

    -------------------------------------------
    |      1 Byte ( 8 bits )                  |
    -------------------------------------------
    |Place Value | 128| 64| 32| 16| 8| 4| 2| 1|     
    -------------------------------------------
    |      $a    |   0|  0|  0|  0| 1| 0| 0| 1|    
    -------------------------------------------
    |      $b    |   0|  0|  0|  0| 1| 0| 1| 0|
    ------------------------------------------- 
    |      |     |   0|  0|  0|  0| 1| 0| 1| 1|
    -------------------------------------------

    您会注意到我们在第 8、2 和 1 列中设置了 3 个位。将这些相加:8+2+1=11。

    Antwort
    0
  • P粉345302753

    P粉3453027532023-10-11 00:19:04

    递增/递减运算符< /p>

    ++ 增量运算符

    --自减运算符

    Example    Name              Effect
    ---------------------------------------------------------------------
    ++$a       Pre-increment     Increments $a by one, then returns $a.
    $a++       Post-increment    Returns $a, then increments $a by one.
    --$a       Pre-decrement     Decrements $a by one, then returns $a.
    $a--       Post-decrement    Returns $a, then decrements $a by one.
    

    它们可以位于变量之前或之后。

    如果放在变量之前,则对变量进行增减操作,然后返回结果。如果放在变量后面,首先返回该变量,然后进行递增/递减操作。

    例如:

    $apples = 10;
    for ($i = 0; $i < 10; ++$i) {
        echo 'I have ' . $apples-- . " apples. I just ate one.\n";
    }

    实例

    在上面的例子中使用了++$i,因为它更快。 $i++ 会有相同的结果。

    预递增要快一点,因为它确实递增变量,然后“返回”结果。后增量创建一个特殊变量,将第一个变量的值复制到其中,并且仅在使用第一个变量后,将其值替换为第二个变量的值。

    但是,您必须使用 $apples--,因为首先您要显示当前的苹果数量,然后您要从中减去一个。

    您还可以在 PHP 中递增字母:

    $i = "a";
    while ($i < "c") {
        echo $i++;
    }

    一旦到达 z,接下来就是 aa,依此类推。


    堆栈溢出帖子:

    Antwort
    0
  • StornierenAntwort