PHP魔術方法使用

2022-04-01 11:02:21 字數 2855 閱讀 1704

php魔術方法的使用

php魔術方法的使用

1、__get()   和  __set();

2、__call()   和  __callstatic();

3、__tostring();

4、__invoke();

1、__get()   和  __set();

乙個php類檔案為 object.php:

class object {

private $array = array();

function __set($key , $value){

var_dump(__methood__);

$this->array[$key] = $value;

function __get($key){

var_dump(__methood__);

return $this->array[$key];

function __call($func,$param){

var_dump($func,$param);

return 'magic function';

static function __callstatic(){

var_dump($func,$param);

return 'magic static function';

當我們給乙個沒有的屬性賦值時會自動呼叫__set();

輸出乙個沒有的屬性的時候會自動呼叫__get();

測試**如下:

$obj = new object();

$obj->title = 'zhangshan';

echo $obj->title;

會得到以下結果:

2、__call()   和  __callstatic();

當我們訪問乙個不存的方法時會自動呼叫__call();

echo $obj->test('hello world',123);

會得到以下結果:

__callstatic()跟__call()大體相同只不過是針對static宣告的方法

echo $obj::test('hello world',123);

會得到以下結果:

php魔術方法的使用

1、__get()   和  __set();

2、__call()   和  __callstatic();

3、__tostring();

4、__invoke();

1、__get()   和  __set();

乙個php類檔案為 object.php:

class object {

private $array = array();

function __set($key , $value){

var_dump(__methood__);

$this->array[$key] = $value;

function __get($key){

var_dump(__methood__);

return $this->array[$key];

function __call($func,$param){

var_dump($func,$param);

return 'magic function';

static function __callstatic(){

var_dump($func,$param);

return 'magic static function';

當我們給乙個沒有的屬性賦值時會自動呼叫__set();

輸出乙個沒有的屬性的時候會自動呼叫__get();

測試**如下:

$obj = new object();

$obj->title = 'zhangshan';

echo $obj->title;

會得到以下結果:

2、__call()   和  __callstatic();

當我們訪問乙個不存的方法時會自動呼叫__call();

echo $obj->test('hello world',123);

會得到以下結果:

__callstatic()跟__call()大體相同只不過是針對static宣告的方法

echo $obj::test('hello world',123);

會得到以下結果:

PHP魔術方法使用總結

魔術方法是php物件導向中特有的特性。它們在特定的情況下被觸發,都是以雙下劃線開頭,你可以把它們理解為鉤子,利用模式方法可以輕鬆實現php物件導向中過載 overloading即動態建立類屬性和方法 魔術方法很多還是成對出現的,以下列出目前php中所有的模式方法。1.construct,destru...

php魔術常量,魔術方法

魔術常量 1。line 返回檔案中的當前行號。2。file 返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自php4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。3。function 返回函式名稱 php4.3.0 新加 自php5 起本常量返...

invoke 魔術 PHP 魔術方法

php 魔術方法 構造方法 construct 析構方法 destruct get 與 set unset call 和 callstatic sleep 和 wakeup clone tostring invoke set state debuginfo construct 這個方法應該是最常用的...