İşte static
anahtar kelime php.net gelen belgeler var: Statik olarak ilanStatik özelliklere "->" erişilemeyen, ancak "::" tarafından erişilebilen neden?
Bir özellik örneklenmiş sınıf nesnesi (statik yöntem olabilir gerçi) ile erişilemez.
Peki neden aşağıdaki kod çalışır?
İşte onların örnek kodu (ben o kısaltmak ettik) var: Burada
<?php
class Foo
{
public static $my_static = 'foo';
}
$foo= new Foo();
print $foo::$my_static; //print 'foo'
?>
Neden $foo::$my_static still
çalışır? Herkese teşekkürler!
'error_reporting()' nız var mı? Herhangi bir uyarı veya uyarı aldınız mı? Web sayfası aşağıdakileri not eder: 'Dikkat: PHP 5'de, statik olmayan yöntemlerin çağrılması statik olarak bir E_STRICT düzeyi uyarısı üretir. İlişkili olabilir. Hangi PHP sürümünü kullanıyorsunuz? –
Bu örnek PHP el kitabından tam anlamıyla yok. Biraz kısaldım. Kesin uyarı veya bildirim yok. Ve ben 5.5 –
kullanın $ foo-> my_static kullanmayı deneyin veya $ this-> my_static kullanan foo sınıfının içinde bir işlev yapın ve uyarıyı göreceksiniz. Bunu, örneklenmiş sınıf nesnesinde kullanamazsınız. – kainaw