要了解一行PHP

时间:2009-08-06 21:02:08

标签: php

以下行的含义是什么,特别是运营商.=

$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);

?>

它似乎构成某种类型的数组,使得最后一个命令首先处理第一个查询然后处理第二个查询。

6 个答案:

答案 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 * intint,这意味着它需要一对int并产生另一个{<1}}:< / p>

⊕(a,b)= a⊕b

假设我们要计算ab并将结果存储在变量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)

它将更新与;并执行它们