php面向物件之靜態方法使用
什么是靜態方法?
不是所有的變數和方法都要通過創建物件來呼叫,可以通過給變數和方法加上static關鍵字來直接呼叫,
呼叫靜態成員的語法格式為:
關鍵字::靜態成員
關鍵字可以是:
(1)self,在類內部呼叫靜態成員時所使用,
(2)靜態成員所在的類名,在類外呼叫類內部的靜態成員時所使用,
注意:在靜態方法中,只能呼叫靜態變數,而不能呼叫普通變數;而普通方法則可以呼叫靜態變數,
<?php class Math{ //靜態方法計算平方 static function squared($input){ return $input*$input; } } echo Math::squared(3);
運行結果為:9
上面是個簡單的實體,值得注意的是,在靜態方法中,不能使用$this關鍵字,因為可能會沒有可以參考的物件實體,因為靜態方法可以不需要實體化物件,
使用靜態成員,除了可以不需要實體化物件外,另一個作用就是在物件被銷毀后,仍然保存被修改的靜態資料,以便下次繼續使用,這個概念比較抽象,下面舉個例子具體分析,
<?php class Play{ static $num = 0; function showNum(){ echo 'num is :'.self::$num; self::$num++; } } $play1 = new Play(); $play1->showNum(); echo '<br>'; $play2 = new Play(); $play2->showNum(); echo '<br>'; echo 'num is :'.Play::$num;
注意事項:
靜態方法很好用,不用實體化物件,當類第一次加載的時候就已經給了靜態成員空間,但是什么東西都是不能濫用的,因為一旦靜態成員宣告的過多,空間一直被占用著,那么會影響系統的運行速度和功能,所以切記:東西雖好,可不能貪多哦!
php面向物件:成員方法、成員變數、類的常量
定義一個人的類,創建一個跑的成員方法
<?php class Person{ //定義成員變數 public $name; public $age; public $gender; public function run(){ echo '人在塔在'; } } $person = new Person(); $person->name = '德瑪西亞'; $person->run();
類中有變數,那么相對的也就是會有常量,常量的意思就是不會改變的量,是一個恒值,
定義常量,我們用const,
<?php class Person{ public $name;//宣告一個變數 const SKILLS = '哈撒尅';//宣告一個常量 public function run(){ echo '人在塔在'; } } $person = new Person(); $person->name = '亞索'; echo '<br>'; $person->run(); echo '<br>'; echo '我是'.$person->name; echo '<br>'; echo '我的技能是:'.$person::SKILLS;

php面向物件之建構式作用與方法
建構式 ,是一種特殊的方法,主要用來在創建物件時初始化物件, 即為物件成員變數賦初始值,總與new運算子一起使用在創建物件的陳述句中,特別的一個類可以有多個建構式 ,可根據其引數個數的不同或引數型別的不同來區分它們 即建構式的多載,
建構式的作用就是用來初始化物件的,該方法可以沒有引數,也可以有多個引數,定義建構式也很簡單,__construct(),值得注意的是函式construct前面是兩個下劃線"_".
<?php class Person{ public $name; public $height; function __construct($name,$height){ $this->name = $name; $this->height = $height; } public function play(){ if($this->height>175){ return $this->name.'可以打籃球'; }else{ return $this->name.'不可以打籃球'; } } } $person = new Person('cyy','168'); echo $person->play();

構造方法是初始化物件時使用的,如果沒有構造方法,那么PHP會自動生成一個,自動生成的構造方法沒有任何引數,沒有任何操作,
php面向物件之解構式的作用與用法
解構式的作用和建構式的作用正好相反,是物件被銷毀時被呼叫,作用是釋放記憶體,定義解構式的格式為:__destruct(),和建構式一樣的是,前面也是兩個下劃線"_",
<?php class Person{ public $name; public $height; function __construct($name,$height){ $this->name = $name; $this->height = $height; } function __destruct(){ echo '物件被銷毀了'; } public function play(){ if($this->height>175){ return $this->name.'可以打籃球'; }else{ return $this->name.'不可以打籃球'; } } } $person = new Person('cyy','168'); echo $person->play(); echo '<br>';

解構式使用注意事項:
php使用的是一種“垃圾回收”機制,自動清除不再使用的物件,釋放記憶體,就是說即使不使用unset函式,析構方法也會自動被呼叫,這里只是明確一下解構式在何時被呼叫,一般情況下是不需要手動創建析構方法的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/40939.html
標籤:PHP
上一篇:php陣列中元素的操作
下一篇:面向物件實體操作
