使用 self:: 或者 __CLASS__ 對當前類的靜態引用,取決於定義當前方法所在的類:
使用 static:: 不再被解析為定義當前方法所在的類,而是在實際運行時計算的。也可以稱之為“靜態綁定”,因為它可以用於(但不限於)靜態方法的調用。
靜態綁定是PHP 5.3.0,增加的一個功能 用於在繼承范圍內引用靜態調用的類
簡單通俗的來說,
self就是寫在哪個類里面, 實際調用的就是這個類.
static代表使用的這個類, 就是你在父類里寫的static,然后被子類覆蓋,使用的就是子類的方法或屬性
請看列子
<?php
class Person
{
public static function name()
{
echo "xiaosan";
echo "<br />";
}
public static function callself()
{
self::name();
}
public static function callstatic()
{
static::name();
}
}
class Man extends Person
{
public static function name()
{
echo "gaojin";
echo "<br />";
}
}
Man::callself(); // output: xiaosan
Man::callstatic(); // output: gaojin
?>
