博客列表 >php 魔术方法

php 魔术方法

技术宅的博客
技术宅的博客原创
2019年09月06日 17:48:16685浏览
class Test {

	public $name;
	private $class;
	private $age;

	public function __construct($name) {
		$this->name = $name;
	}
	public function __unset($name) {
		echo '该类没有该' . $name . '属性<br>';
	}
	// 当对一个对象不存在的属性进行判断是否有值时,就会自动调用__isset()方法
	public function __isset($name) {
		echo '该类没有该' . $name . '属性,不能判断是否有值<br>';
	}
	// 当类的实例调用其自身私有属性时  自动触发该方法 并返回值
	// 获取类私有属性
	public function __get($name) {
		return $this->$name;
	}
	// 当类的实例 设置其自身私有属性时  自动触发该方法 并返回值
	// 设置类私有属性
	public function __set($name, $vlaue) {
		return $this->$name = $vlaue;
	}
	// 此方法必须返回一个字符串
	// 可以用于把类作为字符串输出 只能用echo print来
	public function __toString() {
		return 'Test1';
	}

	// _call 当要调用的方法不存在或权限不足时,会自动调用__call 方法。
	public function __call($name, $arguments) {
		echo '调用不存在的方法名是:' . $name . '<br>参数是:';
		print_r($arguments);
		echo '<br>';
	}

	// __callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。
	public static function __callStatic($name, $arguments) {
		echo '调用不存在的--静态--方法名是:' . $name . '<br>参数是:';
		print_r($arguments);
	}
	// 当尝试以调用函数的方式调用一个对象时,__invoke() 方法会被自动调用。  $test1(5); echo 5
	public function __invoke($x) {
		echo ($x);
	}
}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议