• php 魔术方法学习笔记


    __get()  __set()    __isset()   __unset

    __call   __callstatic

    __call是调用不可见(不存在或者没权限)的方法时,自动调用。

    $lisi->say(1,2,3)   对象中并不存在say 方法   __call("say",array(1,2,3))运行

    __get()用来获取私有成员的属性值,有一个参数,参数传入你要获取的私有成员的属性名称,返回的是获取的值。该方法不用我们手工去调用,只需要封装在类里面就好了。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。如下代码

    //__get()方法用来获取私有属性

    class tian{
    private $age=18;
    public function __get($property_name)
    {
    if(isset($this->$property_name)){
    return($this->$property_name);
    }

    }
    }
    $a=new tian();
    echo $a->age;

    如果要调用的私有属性存在,就会返回传递给私有属性的值,否则就为空
    $a=new tian();
    $a->age;此处会得到18,通过__get()魔术方法,使得在类的外部也能调用私有属性。
     
    __set() 为私有属性赋值,有两个参数,一个参数是私有属性的名称,第二个参数是要给私有属性赋的值,没有返回值,同样也不需要我们手动去调用,是封装在类中的。
    例如如下代码

    class tian{
    private $age=18;
    public function __get($property_name)

    if(isset($this->$property_name)){
    return($this->$property_name);
    }

    }

    public function __set($a,$v){
    echo  $this->$a ;

    }
    }
    $a=new tian();
    echo $a->name="大傻逼";

    如果成员属性不是私有的,也不会调用到该函数。

     
  • 相关阅读:
    VMware 创建的虚拟机,Xshell无法进行连接
    Centos7 文件修改详情
    Centos7 selinux关闭
    centos7 RPM命令使用
    centos 操作系统优化
    centos 内存使用情况+负载使用情况
    Centos 修改环境变量
    centos7 系统级别(持续更新)
    centos7 常规修改信息(比较杂的)持续更新
    centos7 修改网卡信息
  • 原文地址:https://www.cnblogs.com/paddygege/p/6507550.html
Copyright © 2020-2023  润新知