Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Sifat Kelas PHP Dimulakan dengan Ungkapan Tidak Malar?

Bolehkah Sifat Kelas PHP Dimulakan dengan Ungkapan Tidak Malar?

DDD
DDDasal
2024-10-30 05:41:28815semak imbas

Can PHP Class Properties Be Initialized with Non-Constant Expressions?

Teka-teki Permulaan Kelas PHP: Menilai Ungkapan dalam Pengisytiharan Harta

Dokumentasi PHP menentukan bahawa pengisytiharan sifat kelas boleh dimulakan dengan nilai tetap. Walau bagaimanapun, pengguna telah menghadapi ralat sintaks apabila cuba untuk memulakan tatasusunan dengan ungkapan bukan tetap.

Contoh Ralat Sintaks:

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1), // Syntax error
);</code>

Isu Asas:

Ralat berpunca daripada pengehadan dalam PHP 5.5 dan versi terdahulu, di mana hanya nilai tetap dibenarkan dalam pengisytiharan harta. Ini termasuk nilai yang boleh dinilai pada masa penyusunan. Walau bagaimanapun, penggunaan ungkapan yang dikira, seperti "4 1," adalah dilarang.

Resolusi dalam PHP 5.6:

Penghadan ini telah ditarik balik dalam PHP 5.6 dengan pengenalan ungkapan skalar yang berterusan. Ciri ini membenarkan sintaks berikut:

<code class="php">public $var = array(
    1 => 4,
    2 => (4+1),
);

public $var = 4+1;</code>

Kesimpulan:

Ralat sintaks yang ditemui dalam versi PHP yang lebih awal apabila memulakan sifat kelas dengan ungkapan bukan tetap mempunyai telah diselesaikan dalam PHP 5.6 dan versi yang lebih baru. Ungkapan skalar malar kini membolehkan pembangun memulakan sifat dengan nilai terkira yang boleh dinilai pada masa penyusunan.

Atas ialah kandungan terperinci Bolehkah Sifat Kelas PHP Dimulakan dengan Ungkapan Tidak Malar?. 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