博主信息
博文 38
粉丝 0
评论 1
访问量 44261
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
类与对象-属性重载
夜澜风的博客
原创
1181人浏览过

实例

<?php
header("content-type:text/html;charset=utf-8");

// ## 3. 属性重载
// * 重载: 动态的创建属性和方法
// * 当访问未定义或不可见的属性/方法时, 重载方法会自动调用
// * "当访问未定义或不可见", 统称为: "不可访问"
// * PHP中的重载,是通过"魔术方法"实现
// * "魔术方法"是特指客户端不能访问,而只能是系统根据一定条件自动调用
// * 所有重载方法必须声明为: `public`

 class demo{
 	private $name;  //private()受保护的属性或方法
 	private $age;
    protected $country = '中国';   //私有属性或方法

// 	// 魔术方法,前面都是 __开头,两个下划线
 	public function __construct($name,$age){
 		$this->name = $name;
 		$this->age  = $age;
 	}
// 	// 当获取未定义 不可见的属性时,触发。
 	public function __get($name){    //__get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。
 		if($name == 'country'){
 			echo $this->country;
 		}
 	}
//// 	// 给不可见的属性,进行赋值时,触发。
 	public function __set($name,$value){ //__set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。(key=>value)
 		if($name == 'country'){
 			if($value == '***'){
 				echo '绝不让***人加入';
 			}
 		}
 	}
//
//// 	// 检测不可见的属性,触发
//// 	// 需要搭配isset函数
 	public function __isset($name){
 		if($name == 'country'){
 			echo '变量存在';
 		}else{
 			echo '变量不存在';
 		}
 	}
// 	// 删除不可见的属性,触发
// 	// 需要搭配unset函数
 	public function __unset($a){
 		if($a == 'country'){
 			unset($this->country);
 			echo '删除成功';
 		}else{
 			echo '无法删除';
 		}
 	}
 	public function info(){
 	    return $this->name.$this->age.$this->country;
    }
}

 $a = new demo('朱老师',90);
 echo $a->country;
 echo $a->info();
// echo '<br>';
  $a->country = '***';
//  echo '<br>';
 isset($a->country);
//  echo '<br>';
 unset($a->country);
//echo '<br>';
//isset($a->country);

运行实例 »

点击 "运行实例" 按钮查看在线实例


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学