To understand a line of PHP

This question already has an answer here:

  • Reference — What does this symbol mean in PHP? 18 answers

  • This is the concatenate assignment operator. It will concatenate or add to the end of the string. So:

    $a = "Hi!";
    
    $a .= " I";
    $a .= " love";
    $a .= " StackOverflow";
    $a .= " a";
    $a .= " lot";
    
    echo $a; // echos "Hi! I love StackOverflow a lot"
    

    In your case

    $query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
    $query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
    echo $query; 
    /* echos "UPDATE authors SET author=UPPER(author) WHERE id=1; UPDATE authors SET author=LOWER(author) WHERE id=2; */
    

    It means $query = $query . "UPDATE authors SET author=LOWER(author) WHERE id=2;"; $query = $query . "UPDATE authors SET author=LOWER(author) WHERE id=2;";

    So it appends the String to the Query Variable.


    Your question is about the operator .= . It is a shorthand to a string concatenation followed by an assignment.

    On assigment by operation operators

    There is a family of operators we can call assignment by xyz, where xyz here represents a binary operation on operands of the same type, such as addition, subtraction, concatenation.

    So, let's say we have an operator ⊕: int * intint , meaning that it takes a pair of int s and produces another one:

    ⊕(a, b) = a ⊕ b

    Let's say we want to calculate ab and store the results on the variable a . We can do so by:

    a = a ⊕ b

    But we do this so often when coding that an operator was created to represent the line above. You should take it as a single operation that does both the ⊕ operation and the assignment ( = ) with a single call:

    a ⊕= b ⇔ a = a ⊕ b.

    Some examples

    So, in your case, you have a .= operator. Now that you know about assignment by operation operators, you can guess that:

    $query = "Hello, "
    $query .= "World!";
    

    is the same as:

    $query = "Hello, "
    $query = $query . "World!";
    

    See?

    Now, another frequent use of this kind operators are the += and -= versions.

    However, abuse of this kinds of operators may lead to less readable code (especially when dealing with "low level" operators acting on bits, for example).

    链接地址: http://www.djcxy.com/p/1832.html

    上一篇: 与echo和return连接时的句号和逗号之间的区别?

    下一篇: 了解一行PHP