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
Patricia Arquetteasal
2024-10-29 23:45:29400semak imbas

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>

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!

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