php中的__get方法和__set方法是一种魔术方法,主要是用于返回类中没有定义的属性。
__get:如果说只是访问属性名称,没有给属性赋值变量进行调用的话,会自动调用__get魔术方法,不过首先我们要在类中设置才会掉用。
实例
$shili -> value;
__set:如果说我们访问属性的时候,同时对属性进行了赋值,那么如果说我们设置了__set魔术方法的话,程序会自动调用。
实例
echo $shili -> name = 'getvalue';
因此,我们在针对不同的应用场景,可以用不同的魔术变量,也可以同时使用。同时,我们在进行使用__get和__set魔术方法的时候,我们可以在方法里面对不存在的属性进行操作,如重新赋值,或打印出类中未包含的属性名和值等等。
下面,我们将上述方法总结到一起进行使用。
实例
<?php
class gets{
//public $name = 'php';
public function __get($names){ //创建__get魔术方法
$name = 0;
echo $names.'不存在,已为您重置,'.$names.' = 0 <br>';
}
public function __set($setname,$setvalue){ //创建__set魔术方法
$setname = $stevalue;
echo $stename.'不存在,已为您重置'.$setname.' = '.$stevalue;
}
}
$shili = new gets();
$shili -> value;
echo $shili -> name = 'getvalue';运行结果
还有,我们在使用这两个魔术方法的时候,需要严格遵循要使用的规范,如__get方法必须包含一个$值,__set方法必须包含两个$值,这些$值就是用来返回我们访问不存在的属性名称和属性值。





还没有评论,来说两句吧...