Mengapa Penggabungan dan Penambahan PHP Membawa kepada Keputusan Yang Tidak Dijangka?

Susan Sarandon
Lepaskan: 2024-10-31 10:50:29
asal
393 orang telah melayarinya

Why Does PHP Concatenation and Addition Lead to Unexpected Results?

Menyingkap Kekaburan PHP: Kes Penasaran Penggabungan dan Penambahan

Keutamaan pengendali PHP dan perkaitan boleh membawa kepada hasil yang tidak dijangka apabila kedua-dua penambahan dan penggabungan operator terlibat. Pertimbangkan kod ini:

<code class="php">$a = 1;
$b = 2;

echo "sum: " .  $a + $b; // Output: 2
echo "sum: " . ($a + $b); // Output: sum: 3</code>
Salin selepas log masuk

Mengapa terdapat percanggahan? Semuanya berpunca dari susunan penilaian pengendali PHP.

Kedua-dua pengendali penambahan ( ) dan penyambungan (.) mempunyai keutamaan yang sama, tetapi ia adalah bersekutu kiri. Ini bermakna apabila PHP menemui ungkapan yang melibatkan berbilang operator dengan keutamaan yang sama, ia menilai operator paling kiri dahulu dan berjalan ke kanan.

Dalam pernyataan gema pertama, operator penggabungan (.) menilai terlebih dahulu , menghasilkan yang berikut:

"sum: 1" + 2
Salin selepas log masuk

Rentetan "jumlah: 1" kemudiannya ditukar kepada nilai berangka (0) dan ditambah kepada $b (2), menghasilkan output 2.

Dalam pernyataan gema kedua, kurungan memaksa pengendali penambahan untuk menilai dahulu:

($a + $b) . "sum:"
Salin selepas log masuk

Hasilnya kemudian digabungkan dengan rentetan "sum:", menghasilkan output "jumlah: 3" yang dikehendaki ".

Tingkah laku ini didokumenkan dalam dokumentasi PHP mengenai Keutamaan Operator. Ia menyatakan bahawa "Pengendali dengan keutamaan yang sama menilai dari kiri ke kanan, iaitu, pertama , kemudian ., kemudian -."

Atas ialah kandungan terperinci Mengapa Penggabungan dan Penambahan PHP Membawa kepada Keputusan Yang Tidak Dijangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!