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

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

Linda Hamilton
Lepaskan: 2024-10-29 19:11:02
asal
630 orang telah melayarinya

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>
    Salin selepas log masuk
  • Ralat Sintaks:

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

    <code class="php">public $var = 4+1;</code>
    Salin selepas log masuk

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>
Salin selepas log masuk

Kod ini akan mengeluarkan:

4 The value of THREE is 3
Salin selepas log masuk

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!

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