php 關鍵詞final,static的用法 順便也說下php中->跟::的區別 做個筆記
阿新 • • 發佈:2018-12-24
一.
final 的用法很簡單,定義類的時候 就是阻止子類繼承
貼程式碼
final class base{
public function test(){
echo 'this is final';
}
}
任何類都不能繼承base類,如果繼承就會丟擲錯誤
定義方法的時候就是阻止被覆蓋
class base{ final public function test(){ echo 'this is final'; } } class son extends base{ public function test(){ echo 'this is son test'; } }
test方法在base類中已經被final修飾 所以在son類中定義test方法就會丟擲異常
Fatal error: Cannot override final method base::test() in E:\wamp\www\class\base.php on line 12
注意:final只能用來修飾類或者方法
二.static的用法
static可以不用例項化類 就直接能通過類名呼叫
class base{ public static $test1='TEST1'; public static function test(){ echo 'this is static'; } } echo base::$test1;//可以直接通過類名來呼叫base類中的屬性 base::test();
不加static的使用
class base{
public $test1='TEST1';
public function test(){
echo 'this is not static';
}
}
$base=new base();//必須先例項化類 才能通過物件呼叫base類中的屬性
echo $base->test1;
$base->test();
三.通過static的例子,大家可能已經看出了->與::的區別了
在類裡面的時候兩種是沒有多大區別的
在類外面呼叫的時候
->必須是物件才能呼叫
::是類名進行呼叫
歡迎大家留言討論 共同進步