Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Ungkapan Matematik Menyebabkan Ralat Sintaks dalam Pengisytiharan Harta Kelas PHP?

Mengapa Ungkapan Matematik Menyebabkan Ralat Sintaks dalam Pengisytiharan Harta Kelas PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 19:11:02529semak imbas

Why Do Mathematical Expressions Cause Syntax Errors in PHP Class Property Declarations?

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!

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