博主信息
笑颜常开的博客
博文
61
粉丝
0
评论
0
访问量
28123
积分:0
P豆:211.5

属性的重载操作

2019年03月27日 21:10:04阅读数:293博客 / 笑颜常开的博客/ PHP开发

<?php
// 重载:
class Demo3
{
   private $name;
   private $salary;
   protected $secret = '其实猪哥与朱老师不是同一个人';
   // 构造方法
   public function __construct($name, $salary)
   {
       $this->name = $name;
       $this->salary = $salary;
   }
//    public function getName(){
//        return $this->name;
//    }
//    public function getSalary(){
//        return $this->salary;
//    }
//魔术方法:__get($name)当获取未定义可不见属性时触发
   public function __get($name){
//        $name:要访问的属性名称
       if ($name==='secret'){
           return ($this->name==='admin')?$this->$name:'无权查看';
       }
       return $this->$name;
   }
// 魔术方法:__set($name, $value)当设置未定义可不见属性赋值时触发
   public function __set($name, $value)
   {
// 直接返回, 极少这样做
// $this->$name = $value;
// 添加过滤机制
       if ($name === 'salary') {
           return $this->name === 'admin' ? $this->$name = $value : '无权更新';
       }
       return $this->$name = $value;
   }
}
$obj = new Demo3('admin', 6666);
echo $obj->name, '<br>';
echo $obj->secret, '<br>';

$obj->salary=10000;
echo '工资是:'.$obj->salary.'<br>';

//if(isset($obj->name)){
//    echo "你好";
//}
//else{
//    echo "失败";
//}

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论
  • 系统文件中,还存在着一种我们可以自己定义文件。这些不是保存在文件内容中,也不是直接能看到内容。
    去掉存档方法:首先在电脑桌面右击需要进行设置文件夹并点击【】;然后找到【高级选项】后并用鼠标左键点击进入;接着在选项中点击可以存档文件夹前面小方框;最后点击【确定】按键即可完成设置。
    可以加快查询是“索引”,​利用索引可以加快对数据查询和排序速度,索引文件为一个独立文件进行存储,文件中包含指向表记录指针,建立索引后,表中记录物理顺序不变。
    ,java中方法写和是多态不同表现;其中写(Overriding)是父类与子类之间多态一种表现,(Overloading)是一个类中多态一种表现。
    css里display用是规定元素应该生成类型。display是前端开发中常用一个,常用值有block、none、inline、inline-block。
    我们知道,vue和react都实现了一套虚拟DOM,使我们可以不直接DOM元素,只数据便可以新渲染页面。而隐藏在背后原理便是其高效Diff算法。
    excel中复上一个快捷键是“Ctrl+Y”或者“f4”键;或者可以在表格中添加“复”命令,然后选中单元格后直接点击“复”命令图标即可。
    用:在一个新CSS还未成为标准时,让浏览器提前支持。
    系统自身安全漏洞是:系统自身存在“后门”。漏洞是在硬件、软件、协议具体实现或系统安全策略上存在缺陷,从而可以使攻击者能够在未授权情况下访问或破坏系统。
    我们以前一直在使用placeholders,但以前必须要用JavaScript实现而HTML5里给JavaScript标记提供async,使JavaScript能异步加执行,本文将详细介绍该功能
    ,串是一种数据对象和都特殊线表结构。数据结构中提到串,即字符串;字符串中字符之间具有“一对一”逻辑关系,所以严格意义上讲,串存储结构是一种线存储结构。
    在之前文章《php文件之逐行读取文件》中,我们介绍了逐行读取文件方法,然后利用循环我们可以获取文件全部数据。那如果不使用循环,如何获取文件全部数据?
    es6删除对象方法:使用delete符,语法“delete 对象名.名”。使用delete符删除对象,不是将该值设置为undefined,而是从对象中彻底清除该指定
    区别:计算computed支持缓存,只有依赖数据发生改变,才会新进行计算;不支持异步,当computed内有异步时无效,无法监听数据变化。
    在windows中,不于由用户设置文件为“系统”。文件系统是系统文件,一般情况下,系统文件不能被查看,也不能被删除,是系统对要文件一种保护,防止这些文件被意外损坏。
    jquery中attr()和prop()区别是:attr函数是文档节点,设置值只能是字符串类型;prop函数是js对象,设置值可以是包括数组和对象在内任意类型。
    css中display是设置元素显示方式,block是一块状元素方式显示,inline是以内联元素方式显示,none是不显示,块状元素会单独占据一样,其他元素跟他在同一行会被迫换行,挤到下一行
    在javascript中,可以使用delete符删除键值对,语法格式为“delete 对象名称.”。 delete符用于删除对象某个;如果没有指向这个引用,那它最终会被释放。
    在js中,可以使用delete关键字在object中删除,语法格式为“delete object.”。
    变更方法:首先选中需要进行文档;然后点击鼠标右键,在弹出右键菜单中选择“”;接着在弹出”窗口里,将“只读”前面勾取消掉;最后新打开文件即可。