Mengapa PHP Melemparkan Ralat Sintaks Apabila Memulakan Sifat Kelas dengan Ungkapan Mudah?

Patricia Arquette
Lepaskan: 2024-10-30 11:18:02
asal
254 orang telah melayarinya

Why Does PHP Throw a Syntax Error When Initializing Class Properties with Simple Expressions?

Ralat Sintaks Semasa Permulaan Harta dalam Kelas PHP

Menurut dokumentasi PHP, pengisytiharan harta kelas boleh dimulakan dengan nilai tetap, bermakna penilaiannya tidak bergantung pada maklumat jangka masa. Walau bagaimanapun, pembangun mungkin menghadapi masalah apabila memulakan sifat dengan ungkapan mudah. Sebagai contoh, kod berikut memulakan tatasusunan dengan pasangan nilai kunci yang dipratentukan:

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1),
);</code>
Salin selepas log masuk
Salin selepas log masuk

Sementara pasangan nilai kunci pertama (1 => 4) adalah sah, yang kedua (2 => ( 4 1)) menjana ralat sintaks. Malah memberikan ungkapan aritmetik mudah kepada sifat, seperti $var = 4 1, menghasilkan ralat sintaks.

Tingkah laku ini menunjukkan bahawa pengehadan bukan hanya untuk binaan bahasa tertentu seperti tatasusunan. Walau bagaimanapun, ungkapan seperti "4 1" boleh dinilai pada masa penyusunan dan harus dianggap sebagai nilai malar.

PHP 5.6 memperkenalkan ciri baharu yang dikenali sebagai ungkapan skalar malar, yang menangani isu ini. Ungkapan ini membenarkan ungkapan skalar yang melibatkan literal angka dan rentetan atau pemalar digunakan dalam konteks yang PHP menjangkakan nilai statik sebelum ini, termasuk pengisytiharan sifat.

Kod berikut, yang sebelum ini menyebabkan ralat sintaks, kini sah:

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1),
);</code>
Salin selepas log masuk
Salin selepas log masuk

Perubahan ini memberikan pembangun lebih fleksibiliti dalam memulakan sifat kelas dengan ungkapan mudah yang boleh dioptimumkan semasa penyusunan.

Atas ialah kandungan terperinci Mengapa PHP Melemparkan Ralat Sintaks Apabila Memulakan Sifat Kelas dengan Ungkapan Mudah?. 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