Sınıf sabitler PHP diziler olamaz neden teknik nedeni nedir?

3 Cevap php

Herkes bu kısıt (en azından v5.1x in) PHP sınıfları üzerine yerleştirilir neden teknik nedenini bilir?

3 Cevap

Sabitleri değişken türlerini içeremez. Sabit bir değiştirilemez bir "değişken" dir; Bu tahsis edilemez, ancak değeri değişken olsaydı, o zaman could sadece değerini mutasyona tarafından değiştirilebilir:

class SomeClass
{
    public const $array = array(0 => 'foo', 1 => 'bar');

    public static function someFunction()
    {
        self::$array[0] = 'baz'; // SomeClass::$array has now changed.
    }
}

Diziler değişken - bunları değiştirebilirsiniz. Bunun yerine bir statik özelliğini kullanabilirsiniz.

Tam olarak neden bilmiyorum, ama statik dizi değişkeni başlatabilirsiniz:

class myClass {
   public static $arr = Array ('foo', 'bar'); 
}

Diziler değişkenler, bu yüzden dışarıda onları değiştirebilirsiniz unutmayın ...