Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Penggabungan Nampaknya Diutamakan Daripada Penambahan dalam PHP?

Mengapa Penggabungan Nampaknya Diutamakan Daripada Penambahan dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-31 02:28:29338semak imbas

Why Does Concatenation Seem to Take Precedence Over Addition in PHP?

Pengendali PHP Mengutamakan Kekeliruan dengan Penambahan dan Penggabungan

Apabila berurusan dengan pengendali yang berbeza dalam PHP, memahami keutamaan mereka menjadi penting. Keutamaan menentukan susunan operasi dilakukan, yang boleh membawa kepada hasil yang tidak dijangka.

Dalam contoh yang diberikan:

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

echo "sum: " .  $a + $b;
echo "sum: " . ($a + $b);</code>

Isu timbul kerana kedua-dua penambahan ( ) dan penggabungan ( .) pengendali berkongsi keutamaan yang sama. Walau bagaimanapun, kerana ia bersekutu kiri, ia dinilai dari kiri ke kanan.

Dalam pernyataan gema pertama, kod tersebut akan dinilai sebagai:

<code class="php">echo (("sum:" . $a) + $b);</code>

Ini bermakna gabungan "jumlah :" dan $a dinilai dahulu, menghasilkan "jumlah: 1". Ini kemudiannya ditambah kepada $b, memberikan output 2.

Sebaliknya, dalam pernyataan gema kedua, kurungan digunakan:

<code class="php">echo ("sum: " . ($a + $b));</code>

Kurungan memaksa penambahan $a dan $b untuk dinilai terlebih dahulu, memberikan hasil 3. Ini kemudiannya digabungkan dengan "jumlah: ", menghasilkan output yang dijangkakan "jumlah: 3".

Tingkah laku ini boleh mengelirukan, terutamanya apabila berurusan dengan berbilang pengendali dengan keutamaan yang sama. Walau bagaimanapun, dengan memahami keutamaan pengendali dan persekutuan, pembangun boleh mengelakkan keputusan yang tidak dijangka itu.

Atas ialah kandungan terperinci Mengapa Penggabungan Nampaknya Diutamakan Daripada Penambahan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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