欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

探討PHP中OO之靜態(tài)關(guān)鍵字以及類常量的詳解

 更新時間:2013年06月07日 10:51:01   作者:  
本篇文章是對php中的靜態(tài)關(guān)鍵字以及類常量進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

閑著沒事隨便找了點PHP的關(guān)于OO的點資料看看,訪問控制修飾符,self,parent,const,static幾個關(guān)鍵字,箭頭操作符(書上也這么叫..即“->”),范圍解析操作符(即雙冒號“::”),不過覺得這個跟C#語言里的OO很多是一樣的,很容易理解不過還是看看理清PHP里的OO思路還是應(yīng)該的吧。
--------------------------------------------------------------------------------
聲明靜態(tài)的類的成員和方法,使它不需要一個類的實例.一個static成員的聲明不能通過一個類對象的實例來訪問(盡管一個靜態(tài)方法可以)。
靜態(tài)聲明必須在可見性聲明之后。為了兼容PHP 4,如果沒有可見性被聲明,那么成員和方法將被當(dāng)作是已經(jīng)聲明為public。
由于靜態(tài)方法可以調(diào)用非對象實例,偽變量$this不可以在聲明為靜態(tài)的方法中使用。
事實上static方法調(diào)用形式在編譯時被確定。當(dāng)使用必須要聲明的類名時,方法是完全標(biāo)識和無繼承規(guī)則的應(yīng)用。當(dāng)使用必須要聲明的類名時,這種方法就被完全確認(rèn),而且沒有使用繼承的規(guī)則。
如果self已經(jīng)被聲明,那么self就被當(dāng)前所屬的類所解釋。也不適用與繼承規(guī)則。靜態(tài)屬性不能通過箭頭操作符->.訪問非靜態(tài)方法,這將產(chǎn)生一個E_STRICT 級的警告。

復(fù)制代碼 代碼如下:

<?php
class Foo
{   public static $my_static='foo';
    public function staticValue(){   return self::$my_static;   }
}
class Bar extends Foo
{   public function fooStatic(){   return parent::$my_static;   }
}
print Foo::$my_static."/n";
$foo = new Foo();
print $foo->staticValue()."/n";
print $foo->my_static."/n";// Undefined "Property" my_static
// $foo::my_static is not possible
print Bar::$my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?>

復(fù)制代碼 代碼如下:

//靜態(tài)方法實例(Static method example)
<?php
class Foo
{   public static function aStaticMethod() {    }
}
Foo::aStaticMethod();
?>

可以在每個基類中定義常量使它保持不變。在你不使用$符號去聲明或使用它時,常量不同于普通變量。就象靜態(tài)成員,常量值不能通過對象的實例來訪問(而應(yīng)使用$object::constant). 常量值必須是一個常量表達(dá)式,而不是一個變量,一個類的成員,一個數(shù)學(xué)表達(dá)式或函數(shù)調(diào)用的結(jié)果。
復(fù)制代碼 代碼如下:

<?php
class MyClass
{   const constant = 'constant value';
    function showConstant() {   echo  self::constant."/n";   }
}
echo MyClass::constant."/n";
$class = new MyClass();
$class->showConstant();// echo $class::constant; is not allowed
?>

相關(guān)文章

最新評論