您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php面向对象之魔术方法

2025/2/2 20:27:30发布37次查看
这篇文章主要介绍了关于php面向对象之魔术方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
常见魔术方法属性相关__set($property, $value) 给不可访问的属性赋值__get($propertyname) 调用不可访问的属性__isset($content) 对不可访问的属性使用empty()、isset()时触发__unset($content) 对不可访问的属性使用unset()时触发
方法相关__call(string $function_name, array $arguments) 调用不可访问的普通方法$function_name 被调用的方法名$arguments 被调用方法的多个参数__callstatic(string $function_name, array $arguments)调用不可访问的静态方法
综合例子<?phpclass example{ // 可访问的属性 public $price = 111; //不可访问的属性 private $secret = '我是不可访问的属性'; private $age = 23; //不可访问的普通方法 private function dontell() { echo '不能说的秘密'; } //不可访问的静态方法 private static function super() { echo '我是不可访问的静态方法'; } //魔术方法 public function __set($property, $value) { echo '给不可访问的属性赋值,您要设置的属性是'.$property.',值是'.$value; $this -> $property = $value; } public function __get($propertyname) { echo '调用私有属性'.$propertyname.',它的属性值是'.$this -> $propertyname; } public function __isset($content) { echo '你在对不可访问的属性进行empty()、isset()操作'; isset($this->$content); } public function __unset($content) { echo '你在对不可访问的属性进行unset()操作'; isset($this->$content); } public function __call($function_name,$args) { echo '你在调用不可访问的普通方法'; echo '方法名是'.$function_name; var_dump($args); } public static function __callstatic($function_name,$args) { echo '调用不可访问的静态方法'; echo '方法名是'.$function_name; }}//实例化对象$e1 = new example();/******* 触发各种魔术方法 ***********/// 测试__set方法$e1 -> secret = '我是秘密';echo '<hr/>';// 测试__get方法$e1 -> age;echo '<hr/>';// 测试__isset()方法echo isset($e1 -> age);echo '<hr/>';// 测试__unset方法unset($e1 -> age);echo '<hr/>';// 测试__call方法$e1 -> dontell([1,2,3]);echo '<hr/>';// 测试__callstatic方法$e1 -> super();?>
相关推荐:
php面向对象之静态方法、属性和常量
php面向对象之构造函数和析构函数
以上就是php面向对象之魔术方法的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product