Rumah > pembangunan bahagian belakang > tutorial php > Mengapa PHP Gema \'2\' Apabila Menambah dan Menggabungkan Integer?

Mengapa PHP Gema \'2\' Apabila Menambah dan Menggabungkan Integer?

Patricia Arquette
Lepaskan: 2024-10-29 23:45:29
asal
403 orang telah melayarinya

Why Does PHP Echo

Gelagat Menarik PHP: Membongkar Jumlah dan Keanehan Gabungan

Dalam bidang pengaturcaraan PHP, perbincangan baru-baru ini mengenai tingkah laku yang membingungkan apabila menambah dan nilai penggabungan telah mencetuskan rasa ingin tahu.

Mari kita menyelidiki anomali ini, seperti yang ditunjukkan oleh coretan kod berikut:

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

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

Setelah melaksanakan kod ini, seseorang akan menjangkakan kedua-dua gema akan mengeluarkan " jumlah: 3". Walau bagaimanapun, secara mengejutkan, gema pertama memaparkan "2," membuatkan pembangun bingung. Mengapa ini berlaku?

Kuncinya terletak pada keutamaan pengendali dan perkaitan dalam PHP. Kedua-dua pengendali penambahan ( ) dan penggabungan (.) berkongsi tahap keutamaan yang sama, menjadikan mereka dibiarkan bersekutu. Susunan pengendali ini dinilai menjadi penting:

  1. Dalam gema pertama, penggabungan dilakukan terlebih dahulu, menghasilkan "jumlah: 1".
  2. Rentetan ini kemudiannya ditukar kepada integer disebabkan konteks berangka, menukarkan penambahan kepada 0 2 dengan berkesan, menghasilkan "2."

Walau bagaimanapun, dalam gema kedua, kurungan memastikan bahawa penambahan berlaku sebelum penyatuan, memberikan kami hasil yang diingini, "jumlah: 3."

Tingkah laku yang menarik ini, walaupun tidak didokumenkan secara eksplisit, boleh ditemui melalui percubaan dan memahami nuansa halus keutamaan pengendali dan perkaitan dalam PHP.

Atas ialah kandungan terperinci Mengapa PHP Gema \'2\' Apabila Menambah dan Menggabungkan Integer?. 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