发布网友 发布时间:2022-04-06 01:03
共1个回答
热心网友 时间:2022-04-06 02:33
__get() -
读取不可访问属性的值时,__get()
会被调用。
__set() -
在给不可访问属性赋值时,__set()
会被调用。
复制代码
代码如下:
<?php
/**
*
清晰的认识__get()
__set()
*/
class
Example
{
//公有的属性
public
$public
=
'pub'
;
//受保护的
-
子类中该属性可用
protected
$protected
=
'pro';
//私有的
-
只能此类使用此属性
private
$private
=
'pri';
//当访问对象中的属性不存在或者非公有属性的时候自动加载__get()方法
public
function
__get($name){
return
'调用__get()方法:'.$name;
}
//当给对象的一个属性赋值的时候如果该属性不存在或者是非公有属性则自动加载__set()方法
public
function
__set($name,$value){
echo
"\nname:".$name.',value:'.$value."\n";
}
}
$example
=
new
Example;
echo
'<pre>';
echo
$example->public."\n";
echo
$example->protected."\n";
echo
$example->private."\n";
echo
$example->other."\n";
echo
'<hr>';
$example->public
=
'lic';
//这个赋值成功所有没有显示
$example->protected
=
'tec';
$example->private
=
'vat';
$example->other
=
'er';
echo
'<br/>';
echo
'打印
public
属性:'.$example->public;