Statik fonksiyonlar ve değişken böyle bir küresel kapsamda Değişkenler / fonksiyonlara erişmek için kullanılır:
echo myClass::myVariable;
echo myClass::myFunction();
Şey statik olduğu zaman, her yerde ulaşılabilir, ve kendini kullanabilir ve sınıfları kapsamında bulunan hariç, bir prosedür tipi işlevine çok benzer.
class myClass{
static $myVariable = "myVar";
static function myFunction()
{
return "myFunc";
}
}
Bu kullanmak için yollarından biri tek bir sınıfın örneği veya bir Singleton Yöntemi tutmaktır.
class myClass
{
static $class = false;
static function get_connection()
{
if(self::$class == false)
{
self::$class = new myClass;
}
else
{
return self::$class;
}
}
private function __construct()
{
// my constructor
}
// Then create regular class functions.
}
Bunun özel bir kurucu olduğundan, new
operatör ile başlatılamaz olamaz, böylece bir sınıf almak için myClass::get_connection()
aramak zorunda kalıyor. (Bu sınıfın bir üyesi olduğu için) Bu işlev, yeni bir sınıf yapabilirsiniz. Sonra bir statik değişkende sınıf saklar ve tekrar işlev çağrısı, sadece oluşturulan sınıfını geri gelecektir.
Sonunda, statik anahtar kelime kapsamında referans, statik, iyi şeyleri tutmak için kullanılır. Bu çünkü mevcut kapsamının 'değişen' bir şey istemiyorum demektir. Singleton yöntem bu biraz uzanıyor olsa da, her zaman 'aynı' sınıf, içeri ne kapsam önemli değil var aynı fikri tutar
PHP Documentation
Static Keyword
Scope Resolution Operator
StackOverflow Knowledge
How to Avoid Using PHP Global Objects
Share Variables Between Functions in PHP Without Using Globals
Making a Global Variable Accessible For Every Function inside a Class
Global or Singleton for Database Connection
PHP Classes: when to use :: vs. -> ?