Ungkapan Dibenarkan dalam Pengisytiharan Harta Kelas PHP
Dokumentasi PHP mencadangkan bahawa pengisytiharan harta dalam kelas boleh dimulakan dengan nilai tetap, tidak termasuk masa jalan maklumat. Walau bagaimanapun, pemula tatasusunan dan ungkapan matematik tertentu nampaknya menyebabkan ralat sintaks.
Inisialisasi dengan Ungkapan Ringkas
Seperti dokumentasi, ungkapan mudah harus diterima. Di sini, kami mengkaji tiga variasi tatasusunan dan ungkapan matematik:
Diterima:
<code class="php">public $var = array( 1 => 4, 2 => 5, );</code>
Ralat Sintaks:
<code class="php">public $var = array( 1 => 4, 2 => (4+1), );</code>
Ralat Sintaks:
<code class="php">public $var = 4+1;</code>
Contoh pertama memulakan tatasusunan dengan nilai angka dan diterima. Walau bagaimanapun, contoh kedua dan ketiga, menggunakan ungkapan matematik, kedua-duanya mengakibatkan ralat sintaks. Ini menunjukkan bahawa pengehadan melangkaui sintaks tatasusunan untuk memasukkan semua ungkapan yang dikira.
Ungkapan Skalar Malar dalam PHP 5.6
Bertentangan dengan batasan yang diterangkan sebelum ini, PHP 5.6 memperkenalkan pemalar ungkapan skalar. Ciri baharu ini membenarkan ungkapan skalar yang melibatkan literal angka dan rentetan serta pemalar dalam konteks di mana nilai statik diperlukan sebelum ini, seperti pengisytiharan pemalar dan sifat.
<code class="php">class C { const THREE = TWO + 1; const ONE_THIRD = ONE / self::THREE; const SENTENCE = 'The value of THREE is '.self::THREE; public function f($a = ONE + self::THREE) { return $a; } } echo (new C)->f()."\n"; echo C::SENTENCE;</code>
Kod ini akan mengeluarkan:
4 The value of THREE is 3
Oleh itu, had awal pada permulaan sifat kelas tidak lagi digunakan dalam PHP 5.6 dan versi yang lebih baru.
Atas ialah kandungan terperinci Mengapa Ungkapan Matematik Menyebabkan Ralat Sintaks dalam Pengisytiharan Harta Kelas PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!