魔術方法 get set 和

2022-07-17 21:06:14 字數 1179 閱讀 6506

剛開始學習魔術方法時對__get()、__set() 和__call()的用法和作用不是太了解,也有一些誤解。。。

__get()、__set() 和__call()是很常用的,雖然不像__construct、__destruct運用的那麼多,但是它們地位也是毋庸置疑的,

__construct、__destruct大家肯定非常熟悉了,在這就不多說了,直接看—————__get()、__set() 和__call();

1. __call :  

規則:

mixed __call(string

$name,array

$arguments)

當呼叫類中不存在的方法時,就會呼叫__call();

為了更好的理解,看一下例子:

<?php

class

test

} $ob=new

test();

$ob->hello(1,2);

?>

上面的例子將輸出:

hello

array(

[0]=>1

[1]=>2

2.__get() 和__set():

規則:

get :

mixed __get(string

$name

)set:void __set(

string

$name ,mixed

$value)

__get()是訪問不存在的成員變數時呼叫的;

__set()是設定不存在的成員變數時呼叫的;

為了更好的理解,看一下例子:

<?php

class

test

public

function __get($x

)

} $a = new

test;

$a->b = 1 ;//

成員變數b不存在,所以會呼叫__set

$a->c = 2;//

成員變數c存在,所以無任何輸出

$d=$a->b;//

成員變數b不存在,所以會呼叫__get

?>

上面的例子將輸出:

bthe value of b is 1

希望可以幫到大家!

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...

PHP魔術方法和魔術常量

具體的解釋如下 1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 c...

php魔術常量和魔術方法

1.概述 get 獲取私有屬性值的時候呼叫 set 設定私有屬性值的時候呼叫 construct 構造方法 destruct 析構方法 unset 觸發時機 當銷毀乙個私有成員屬性的時候呼叫 引數 屬性名 isset 觸發時機 當判斷乙個私有成員屬性是否被設定過時呼叫 引數 屬性名 invoke 了...