Чтобы понять строку PHP

Что означает следующая строка, в частности оператор .=?

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

в код

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

?>

Кажется, создается какой-то массив, так что последняя команда обрабатывает сначала первый запрос, а затем второй.

Ответ 1

Это оператор присваивания конкатенаций. Он будет конкатенировать или добавить к концу строки. Итак:

$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; */

Ответ 2

Это означает $query = $query . "UPDATE authors SET author=LOWER(author) WHERE id=2;";

Поэтому он добавляет строку к переменной запроса.

Ответ 3

Ваш вопрос касается оператора .=. Это сокращение к конкатенации строк, за которой следует присвоение.

Об усвоении операционными операторами

Существует множество операторов, которые мы можем называть присваиванием xyz, где xyz здесь представляет двоичную операцию над операндами того же типа, такие как сложение, вычитание, конкатенация.

Итак, допустим, мы имеем оператор & oplus;: int * intint, что означает, что он принимает пару int и создает другую:

& oplus; (a, b) = a & oplus; б

Скажем, мы хотим вычислить a & oplus; b и сохранить результаты по переменной a. Мы можем это сделать:

a = a & oplus; б

Но мы делаем это так часто, когда кодируем, что оператор был создан для представления строки выше. Вы должны принять его за одну операцию, которая выполняет оба действия: o; (=) с помощью одного вызова:

a & oplus; = b & hArr; a = a & oplus; б.

Некоторые примеры

Итак, в вашем случае у вас есть оператор .=. Теперь, когда вы знаете о назначении операционными операторами, вы можете предположить, что:

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

совпадает с:

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

См?

Теперь еще одним часто используемым оператором такого рода являются версии += и -=.

Однако злоупотребление такими операторами может привести к менее читаемому коду (особенно при работе с операторами низкого уровня, действующими на биты, например).

Ответ 4

.= просто означает "добавить". Это

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

Ответ 5

Объединить строку... так что $query становится:

"UPDATE authors SET author=UPPER(author) WHERE id=1;UPDATE authors SET author=LOWER(author) WHERE id=2;"

Ответ 6

он отделяет обновления; и выполняет оба из них