Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Memulakan Pembolehubah Statik Kompleks dengan Betul dalam PHP?

Bagaimanakah Saya Boleh Memulakan Pembolehubah Statik Kompleks dengan Betul dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-27 17:44:11
asal
826 orang telah melayarinya

How Can I Properly Initialize Complex Static Variables in PHP?

Memulakan Pembolehubah Statik dalam PHP

Apabila memulakan pembolehubah statik dalam PHP, anda mungkin menghadapi ralat sintaks dengan ungkapan bukan remeh dalam pemula, seperti yang dilihat dalam coretan kod di bawah:

private static $dates = array(
  'start' => mktime( 0,  0,  0,  7, 30, 2009),  // Start date
  'end'   => mktime( 0,  0,  0,  8,  2, 2009),  // End date
  'close' => mktime(23, 59, 59,  7, 20, 2009),  // Date when registration closes
  'early' => mktime( 0,  0,  0,  3, 19, 2009),  // Date when early bird discount ends
);
Salin selepas log masuk

Penyelesaian:

Satu penyelesaian adalah untuk mengelakkan ungkapan kompleks dalam pemula dan sebaliknya tetapkan nilai selepas mentakrifkan kelas:

class Foo {
  static $bar;
}
Foo::$bar = array(…);
Salin selepas log masuk

Pilihan lain ialah menggunakan fungsi statik untuk memulakan pembolehubah:

class Foo {
  private static $bar;
  static function init()
  {
    self::$bar = array(…);
  }
}
Foo::init();
Salin selepas log masuk

Penambahbaikan PHP 5.6:

PHP 5.6 menyokong beberapa ungkapan dalam pemula pembolehubah statik. Sebagai contoh, anda boleh menentukan kelas abstrak dengan fungsi statik peribadi untuk memulakan pembolehubah:

abstract class Foo{
    private static function bar(){
        static $bar = null;
        if ($bar == null)
            bar = array(...);
        return $bar;
    }
    /* use where necessary */
    self::bar();
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memulakan Pembolehubah Statik Kompleks dengan Betul dalam 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