本文目錄一覽:
- 1、PHP類中的魔法方法有哪些
- 2、PHP怎麼調用其他類的方法
- 3、php 類名::方法
- 4、PHP類中的__set()和__get()方法用在什麼地方?可以用例子說明一下么…
- 5、PHP類的構造方法
PHP類中的魔法方法有哪些
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(),__wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()
注意:PHP 將所有以 __(兩個下劃線)開頭的類方法保留為魔術方法。所以在定義類方法時,除了上述魔術方法,建議不要以 __ 為前綴。
詳細可以查看網頁鏈接
PHP怎麼調用其他類的方法
在Java的調用方法是import,而在PHP中沒有import這個函數,一般PHP中調用其他類是用到require(),具體PHP調用其他類的方法如下:
1、首先應該先有一個文件名為tool.php的文件,在文件中聲明一個類。
2、然後需要有另一個文件名為main.php的文件,在文件中調用上面的類。方法如下。
擴展資料:
類是變量與作用於這些變量的函數的集合。使用下面的語法定義一個類:
?php
class Cart { var $items; // 購物車中的物品
// 將 $num 個 $artnr 物品加入購物車
function add_item($artnr, $num) {
$this-items[$artnr] += $num;
} // 將 $num 個 $artnr 物品從購物車中取出
function remove_item($artnr, $num) {
if ($this-items[$artnr] $num) {
$this-items[$artnr] -= $num; return true;
} elseif
($this-items[$artnr] == $num) {
unset($this-items[$artnr]); return true;
} else {
return false; }
}
} ?
上面的例子定義了一個 Cart 類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。
參考資料來源:百度百科-php類
php 類名::方法
::是靜態訪問方式,只和類本身相關而和類對象沒有關係,所以直接調用是類名::方法名
因為PHP語言本身就是一個不夠嚴謹的語言(或者換句話說,比較靈活),所以當一個方法只要是public(像樓主那樣的缺省的也為public類型)並且該方法中沒有使用代表對象的$this就可以使用::來調用,php在解析的時候會自動將其以靜態方法解析調用。當然在PHP5以後,就引入了static public function func(){}這種方式聲明,所以如果在PHP5上,並且報錯機制是比較全的話,直接調用一個沒有static聲明的方法的時候,就會提示一個notic了···
PHP類中的__set()和__get()方法用在什麼地方?可以用例子說明一下么…
在PHP類中的__set()和__get()方法是針對protect或private變量的,不針對public變量。因為對protect或 private變量在類外不可直接訪問,可在類中定義一個public方法來訪問這些變量,而__set()和__get()方法相當於這些public 方法,但是在類外的操作時表面上相當於直接訪問,但本質上還是通過__set()和__get()方法體內的判斷與操作。對於一個類中有多個 protect或private變量,用一對__set()和__get()方法就可操作,編譯器將可自己區別用的是哪個變量(由在類外操作時具體的變量名決定,如$object-$name=”sss”).
如下:
?php
class test
{
var $name;
var $age;
function __set($name,$value)
{
$this-$name = $value ;
}
function __get($name)
{
return $this-$name;
}
}
$a = new test();
$a – name = 5;
echo $a-name . “br/” ;
$a – age = “12”;
echo $a-age;
?
輸出結果是,5 和 12。
//php類中靜態變量可用一般方法或靜態方法來操作,但如果在類中用靜態方法,則靜態方法中不可有非靜態的變量。
PHP類的構造方法
構造方法是類中的一個特殊方法。當使用 new 操作符創建一個類的實例時,構造方法將會自動調用,其名稱必須是 __construct() 。所以通常用它執行一些有用的初始化任務。該方法無返回值。
如果子類中定義了構造函數則不會暗中調用其父類的構造函數。要執行父類的構造函數,需要在子類的構造函數中調用 parent::__construct()。
與構造方法對應的就是析構方法,析構方法會在某個對象的所有引用都被刪除或者當對象被顯式銷毀之前執行的一些操作或者功能。析構函數不能帶有任何參數,其名稱必須是 __destruct() 。
同樣,如果子類中定義了析構函數則不會暗中調用其父類的析構函數。要執行父類的析構函數,需要在子類的析構函數中調用 parent::__destruct()。
注意:在析構函數中拋出一個異常會導致致命錯誤。
?php
class Construct{
protected $a;
protected $b;
function __construct($a,$b){ //定義構造函數
$this-a=$a;
$this-b=$b;
}
function __destruct(){ //重新定義為初始值
$result=0;
echo ‘恢復乘積的初始值:’.$result;
}
}
class son extends construct{
private $c;
function __construct($c){
parent::__construct(6,10); //調用父類的構造方法,使用方法:parent::__construct(); 有參數加參數
$this-c=$c;
}
function show(){
$result=$this-a*$this-b*$this-c;
print ‘abc的乘積是:’.$result.’ ‘;
}
function __destruct(){
parent::__destruct(); //調用父類的析構函數,使用方式:parent::__destruct();
}
}
$test=new son(12); //實例化對象
$test-show(); //abc的乘積是:720 恢復乘積的初始值:0
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/241746.html