以下行的含义是什么,特别是运营商.=
?
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
the code 中的
<?php
$conn = pg_pconnect("dbname=publisher");
// these statements will be executed as one transaction
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
pg_query($conn, $query);
?>
它似乎构成某种类型的数组,使得最后一个命令首先处理第一个查询然后处理第二个查询。
答案 0 :(得分:8)
这是连接赋值运算符。它将连接或添加到字符串的末尾。所以:
$a = "Hi!";
$a .= " I";
$a .= " love";
$a .= " StackOverflow";
$a .= " a";
$a .= " lot";
echo $a; // echos "Hi! I love StackOverflow a lot"
在你的情况下
$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; */
答案 1 :(得分:3)
这意味着$query = $query . "UPDATE authors SET author=LOWER(author) WHERE id=2;";
因此它将String附加到查询变量。
答案 2 :(得分:2)
您的问题是关于运营商.=
。它是字符串连接的简写,后跟赋值 。
有一系列运算符我们可以通过xyz 调用赋值,其中 xyz 这里表示对相同类型的操作数的二元运算,例如加法,减法,串联。
所以,假设我们有一个运算符⊕:int
* int
→int
,这意味着它需要一对int
并产生另一个{<1}}:< / p>
⊕(a,b)= a⊕b
假设我们要计算a
⊕b
并将结果存储在变量a
上。我们可以通过以下方式实现:
a =a⊕b
但是我们经常在编写创建运算符来表示上面的行时这样做。您应将其作为单个操作,通过一次调用同时执行⊕操作和赋值(=
):
a⊕=b⇔a= a⊕b。
因此,在您的情况下,您有.=
运算符。现在您已了解按操作分配运算符,您可以猜到:
$query = "Hello, "
$query .= "World!";
与:
相同$query = "Hello, "
$query = $query . "World!";
请参阅?
现在,另一种频繁使用此类运算符的是+=
和-=
版本。
然而,滥用这种类型的运算符可能会导致代码不太可读(例如,在处理作用于位的“低级”运算符时)。
答案 3 :(得分:1)
.=
只是意味着“追加”。此
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
...结果
$query == "UPDATE authors SET author=UPPER(author) WHERE id=1;UPDATE authors SET author=LOWER(author) WHERE id=2;"
答案 4 :(得分:0)
连接字符串...所以$query
变为:
"UPDATE authors SET author=UPPER(author) WHERE id=1;UPDATE authors SET author=LOWER(author) WHERE id=2;"
答案 5 :(得分:0)
它将更新与;并执行它们