Mengapakah PHP Membenarkan Interpolasi Langsung Elemen Tatasusunan Bersekutu dalam Rentetan Petikan Dua Kali?

Linda Hamilton
Lepaskan: 2024-11-01 06:45:02
asal
657 orang telah melayarinya

Why Does PHP Allow Direct Interpolation of Associative Array Elements in Double-Quoted Strings?

Interpolasi Tatasusunan Bersekutu dalam PHP: Gelagat Tidak Dijangka

Apabila menginterpolasi elemen tatasusunan bersekutu dalam PHP, gelagat tertentu mungkin menimbulkan kejutan. Pertimbangkan contoh berikut:

<code class="php">$ha = array('key1' => 'Hello to me');

print $ha['key1'];   // correct (usual way)
print $ha[key1];     // Warning, works (use of undefined constant)

print "He said {$ha['key1']}"; // correct (usual way)
print "He said {$ha[key1]}";   // Warning, works (use of undefined constant)

print "He said $ha['key1']";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[ key1 ]";   // Error, unexpected T_ENCAPSED_AND_WHITESPACE
print "He said $ha[key1]";     // !! correct (How Comes?)</code>
Salin selepas log masuk

Anehnya, baris terakhir nampaknya kod PHP yang sah. Mengapakah ini berlaku?

Penjelasan

Percayai sintaks yang kelihatan luar biasa. Menurut dokumentasi rasmi, semua kaedah interpolasi pembolehubah disokong. Ini termasuk mengakses elemen tatasusunan dalam rentetan petikan dua tanpa melampirkannya dalam kurungan kerinting.

Punca bagi kelakuan tertentu ini mungkin tidak jelas sepenuhnya, tetapi ia berpunca daripada evolusi sejarah PHP, di mana ketidakkonsistenan sudah pasti berlaku. Namun begitu, ciri ini boleh dipercayai dan diterima secara meluas sebagai sintaks PHP yang sah.

Atas ialah kandungan terperinci Mengapakah PHP Membenarkan Interpolasi Langsung Elemen Tatasusunan Bersekutu dalam Rentetan Petikan Dua Kali?. 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!