首頁 >後端開發 >php教程 >php物件導向之靜態方法使用

php物件導向之靜態方法使用

巴扎黑
巴扎黑原創
2017-04-11 17:17:522796瀏覽

什麼是靜態方法?

不是所有的變數和方法都要透過建立物件來呼叫。可以透過為變數和方法加上static關鍵字來直接呼叫。

呼叫靜態成員的語法格式為:

關鍵字::靜態成員

關鍵字可以是:

( 1)self,在類別內部呼叫靜態成員時所使用。

(2)靜態成員所在的類別名,在類別外呼叫類別內部的靜態成員時所使用。

注意:在靜態方法中,只能呼叫靜態變量,而不能呼叫普通變數;而普通方法則可以呼叫靜態變數。

靜態方法實例講解:

靜態方法實例1:

<?php
class Math{
static function squared($input){
return $input*$input
}
}
echo Math :: squared(3);

運行結果為:9

上面是個簡單的實例,值得注意的是,在靜態方法中,不能使用$this關鍵字,因為可能會沒有可以引用的物件實例。因為靜態方法可以不需要實例化物件。

使用靜態成員,除了可以不需要實例化物件外,另一個作用就是在物件被銷毀後,仍然保存被修改的靜態數據,以便下次繼續使用。這個概念比較抽象,下面舉個例子具體分析。

靜態方法實例2:

<?php
header("content-type:text/html;charset=utf-8");
class Play{
static $num = 0;
function showNum(){
echo &#39;这是你第&#39; . self :: $num . &#39;次玩LOL&#39;;
self :: $num++ ;
}
}
$play1 = new Play();
$play1 -> showNum();
echo &#39;<br/>&#39;;
$play2 = new Play();
$play2 -> showNum();
echo &#39;<br/>&#39;;
echo &#39;这是你第&#39; . Play::$num .&#39;次玩LOL&#39;;

上述實例中,我們先定義了靜態變數$num,然後再類別中宣告一個方法,在方法當中呼叫了靜態變量,呼叫的方法可以在實例中看到,接著是給靜態變數加1.依序實例化類別的對象,再呼叫方法。接下來就是我們上面說的:在物件被銷毀後,仍然保存被修改的靜態數據,以便下次繼續使用。

注意事項:

靜態方法很好用,不用實例化對象,當類別第一次載入的時候就已經給了靜態成員空間。但是什麼東西都是不能濫用的。因為一旦靜態成員聲明的過多,空間一直被佔用著,那麼會影響系統的運行速度和功能,所以切記:東西雖好,可不能貪多哦!

以上是php物件導向之靜態方法使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn