To understand a line of PHP
This question already has an answer here:
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
* int
→ int
, meaning that it takes a pair of int
s and produces another one:
⊕(a, b) = a ⊕ b
Let's say we want to calculate a
⊕ b
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