Rumah > Artikel > pembangunan bahagian belakang > Mengapa PHP Melemparkan Ralat Sintaks Apabila Memulakan Sifat Kelas dengan Ungkapan Mudah?
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>
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>
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!