<?php header("content-type:text/html;charset=utf-8"); class person{ //私有的成员属性,对直接访问象 private $name; private $age; private $sex; //魔术方法 __construct(), __set(), __unset(), __isset(), __unset()..... function __construct($name="name1",$age =20,$sex="女"){ $this->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<br>"; } function run(){ $this->left(); $this->right(); } private function left(){ echo "left"; } private function right(){ echo "right"; } //析构方法,对象销毁前自动调用 function __destruct(){ echo "$this->name:我走了<br>"; } } $p1 = new person("name1",15,"女"); $p2 = new person("name2",20,"男"); $p3 = new person("name3",30,"女"); /* 对象直接访问或设置私有属性 */ $p1->name="对象直接访问私有属性"; echo $p1->name."<br>"; /* 输出,注意__destruct()的输出顺序 name1:我的年龄15,性别:女 name2:我的年龄20,性别:男 name3:我的年龄30,性别:女 name1:我走了 name3:我走了 name2:我走了 */ $p1->say(); $p2->say(); $p3->say(); $p1=null; ?>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号