__get()方法的作用是獲取私有成員的屬性值,它含有乙個引數,即要獲取的成員屬性的名稱,呼叫時返回獲取的屬性值,這個方法不需要手動呼叫,是在獲取私有屬性時自動呼叫的,因為私有屬性已經被封裝,不能直接獲取屬性值,如「echo $p1->name;"的形式是錯誤的,但如果在類裡面加上了__get()的方法,在使用"echo katex parse error: expected group after '_' at position 27: …句直接獲取值得時候就會自動呼叫_̲_get(property_name)方法,將屬性name傳給引數$property_name,通過這個方法呼叫,返回傳入得私有屬性得值。**如下
private
function
__get
($property_name
)else
}
例項:
<?php
class
person
else}}
$p1=
newperson()
;/*直接獲取私有屬性得值,會自動呼叫__get()的方法,返回成員屬性的值*/
echo
'姓名:'
.$p1
->
name.'
';echo
'性別:'
.$p1
->
***.''
;echo
'年齡:'
.$p1
->
age.''
;
返回結果:
在直接獲取私有成員屬性得時候,自動呼叫了這個__get()方法如果不設定__get(),類中被封裝的變數將會無法訪問姓名:張三
在直接獲取私有成員屬性得時候,自動呼叫了這個__get()方法
性別:男
在直接獲取私有成員屬性得時候,自動呼叫了這個__get()方法
年齡:12
報錯資訊:
fatal error: uncaught error: cannot access private property person::$name in總結:
類中被private的引數是無法直接被呼叫的,此時需要通過在類當中設定__get()魔術方法來實現private引數的呼叫
PHP 魔術方法 get
慢慢長尋夜,明月高空掛 get 讀取不可訪問屬性的值時,get set 在給不可訪問屬性賦值時,set 清晰的認識 get set class example 當給物件的乙個屬性賦值的時候如果該屬性不存在或者是非公有屬性則自動載入 set 方法 public function set name,va...
PHP魔術方法之 get 和
看 class stu public function set name,value s new stu var dump s a output 123 var dump s b output 123 var dump s c output null var dump s d output 0 va...
巧用PHP中 get 魔術方法
php中的魔術方法有很多,這些魔術方法可以讓php指令碼在某些特定的情況下自動呼叫。比如 construct 每次例項化乙個類都會先呼叫該方法進行初始化。這裡我們講一下 get 魔術方法的使用。讀取不可訪問屬性的值時,get 會被呼叫。也就是,當想要獲取乙個類的私有屬性,或者獲取乙個類並為定義的屬性...