PHP bir çizgi anlamak için

6 Cevap

What does the following line mean, particularly the operator .=

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

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

?>

Bu dizinin çeşit gibi son komutu süreçler Önce ilk sorgu ardından ikinci olduğunu yapmak gibi görünüyor.

6 Cevap

Bu BİRLEŞTİR atama operatörüdür. Bu bitiştirmek veya dizenin sonuna ekleyecektir. Yani:

$a = "Hi!";

$a .= " I";
$a .= " love";
$a .= " StackOverflow";
$a .= " a";
$a .= " lot";

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

Sizin durumunuzda

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

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

Bu yüzden Sorgu değişkenin dize ekler.

Sizin soru operatörü .= ilgilidir. Bir shorthand to a string concatenation bir assignment izler.

On assigment by operation operators

xyz burada ekleme, çıkarma, birleştirme gibi aynı tipte işlenenlere bir ikili işlemi temsil biz assignment by xyz arayabilirsiniz operatörlerin bir aile vardır.

int * int →: Yani, biz bir operatör ⊕ var diyelim int, bu int s bir çift alır ve başka bir üretir, yani:

⊕ (a, b) a = ⊕ b

Kullanıcının biz ab hesaplamak ve değişken üzerindeki sonuçlarını depolamak istiyorum diyelim a. Biz bunu yapabiliriz:

a ⊕ = b

Bir operatör yukarıdaki çizgiyi temsil etmek yaratılmış olduğunu kodlama Ama biz sık sık bunu. Sen ⊕ hem de yok tek bir işlem olarak almalı operasyon ve atama (=) tek bir çağrı ile:

a ⊕= b ⇔ a ⊕ = b.

Some examples

Yani, sizin durumunuzda, bir .= operatör var. Şimdi assignment by operation operatörleri hakkında bilmek, bunu tahmin edebilirsiniz:

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

: aynı gibidir

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

Bak?

Şimdi, bu tür operatörlerin başka sık kullanımı += ve -= versiyonları vardır.

Ancak operatörler bu tür kötüye az okunabilir kod ("düşük seviye" operatörleri, örneğin, bit üzerinde hareket ile ilgili, özellikle de) yol açabilir.

.= sadece "append" anlamına gelir. Bu

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

... Sonuçları

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

onunla güncellemeleri ayırır; ve bunların her ikisi de yürütür

Concatenates dizesi ... yani $query olur:

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