"static ::" anahtar kelimesinin etrafında bazı PHP üzerinde çalışıyordum ve çok fazla statik çağrının bir yöntemin bulunduğu yerdeki karışıklığa neden olduğu bir sorunla karşılaştı. Bu örnekle göstermek daha kolaydır:Olası PHP hatası statik: PHP 5.3.3
class Class1
{
function Test()
{
return Class2::Test();
}
}
class Class2
{
function Test()
{
return static::Test2();
}
function Test2()
{
return true;
}
}
/* test 1: calling Class1::Test() statically results in expected call to Class2::Test2() */
echo "test 1: " . Class1::Test() . "\n";
/* test 2: instantiating the class causes Class1::Test2() to be called, which does not exist */
$Class1 = new Class1();
echo "test 2: " . $Class1->Test() . "\n";
dışarı ulaşmak ve bu gerçek bir hata ya da dilin basit kötüye olup olamayacağını söyleyebilir PHP uzmanların görüş almak istedik.
Kurulumun tüm statik çağrılarda tuhaf olabileceğini biliyorum, ancak karşılaştığım gerçek kodu temsil ediyor.
Lütfen daha fazla bilgi veya açıklama gerekirse lütfen bildirin. Şimdiden herhangi bir yardım için teşekkürler!
Hangi PHP sürümünü kullanıyorsunuz? statik anahtar kelimesi 5.3 –
'a kadar uzatılmamıştı. Sanırım bunun gerçekten statik anahtar kelimeyle ilgili bir hata olup olmadığını ve tüm statik bağlantı noktasının çalışmanın "nasıl" yapıldığı soruluyor. – LLBBL
5.3.3 –