php 对象直接访问私有属性
程序员文章站
2024-01-26 18:58:40
...
name=$name; $this->age=$age; $this->sex=$sex; } /* 输出 Cannot access private property Person::$name 对象不能直接访问和设置私有属性的值,但是通过魔术方法__get($proName), __set($proName,$proValue)可以做到. 步骤: 1.重写魔术方法__get($property) , __set($proName,$proValue) 2.用对象直接访问或设置私有属性 $p1->name="对象直接访问私有属性"; echo $p1->name; 3.对象直接访问或设置私有属性时,会自动调用魔法方法__get($proName), __set($proName,$proValue) */ function __get($proName){ return $this->$proName; } function __set($proName,$proValue){ $this->$proName=$proValue; } function say(){ echo "$this->name:我的年龄$this->age,性别:$this->sex
"; } function run(){ $this->left(); $this->right(); } private function left(){ echo "left"; } private function right(){ echo "right"; } //析构方法,对象销毁前自动调用 function __destruct(){ echo "$this->name:我走了
"; } } $p1 = new Person("name1",15,"女"); $p2 = new Person("name2",20,"男"); $p3 = new Person("name3",30,"女"); /* 对象直接访问或设置私有属性 */ $p1->name="对象直接访问私有属性"; echo $p1->name."
"; /* 输出,注意__destruct()的输出顺序 name1:我的年龄15,性别:女 name2:我的年龄20,性别:男 name3:我的年龄30,性别:女 name1:我走了 name3:我走了 name2:我走了 */ $p1->say(); $p2->say(); $p3->say(); $p1=null; ?>
上一篇: 回来字符串截取循环
下一篇: Oracle中的soaptest
推荐阅读
-
php 对象直接访问私有属性
-
PHP插件更新对象与类属性的方法
-
php中利用反照访问类私有方法
-
js里边的对象ajax post到php端直接变成数组了
-
php面向对象中static静态属性和静态方法的调用,面向对象static
-
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间,_PHP教程
-
PHP中防止直接访问或查看或下载config.php文件的方法_PHP
-
Java记录 -88- 利用反射机制调用对象的私有方法和属性
-
通过反射获取类对象的属性和方法及破坏私有属性
-
Java~反射的API文档使用(利用反射创建对象、反射私有构造方法、反射私有属性、反射私有方法)