zoukankan      html  css  js  c++  java
  • 魔术方法(部分)

    PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法

    之前的构造函数与析构函数也都是魔术方法

     

    __set()

    当对类中的不能直接访问的属性赋值时,该方法被自动调用

    __set不需要返回值

    格式:   Function __get($name,$value) {}

     

    __get():

    在类的外部调用不能直接访问的属性时,该函数方法被自动调用

    魔术方法必须是公共的,且不能定义为静态的

    被访问的属性的名称,它必须是一个字符串

    __get必须有返回值,所以最后结束的肯定是return语句

    格式:   Function __get($name) {}

     

    __isset():

    判断类中的属性是否被设置了

    当对不可访问属性调用 isset()  empty() 时,__isset()会被调用。

    传入的是类的属性名称

    如果属性存在,则返回属性的值,如果不存在,返回null

    格式:   Function __isset($name) {}

     

    __unset():

    销毁指定的变量

    格式:   Function __unset($name) {}

     

    __call():

    在对象中调用一个不能直接访问的非静态方法时,__call()被自动调用

    $name 被访问的函数方法的名称,字符串格式

    $arguments 传递过来的函数方法的参数,数组格式

    格式:   Function __call($name,$arguments) {

    if(method_exists($this,$name))
    {
         call_user_func_array(array($this,$name),$arguments);
    }
    else
    {
        echo '没有对应的函数可以被调用';
    }

    }

     

    __toString():

    当以字符串格式输出类的对象时,默认被自动调用

    该函数方法结束必须有一个return语句,且返回的值必须是字符串

    格式:   Function __toString() {}

     

    __clone()

    当类的对象被克隆时自动调用执行

  • 相关阅读:
    判断谷歌坐标是否在视野矩形内
    查看数据库中表占用空间
    Abp Create
    URL Rewrite Module Configuration Reference
    fiddler 使用
    ionic
    MySQL的安装与配置——详细教程
    Navicat 连接Mysql 8.0以上版本报错1251的详细解决方案
    简单的使用Navicat for MySQL
    navicat for mysql 中文破解版(无需激活码)
  • 原文地址:https://www.cnblogs.com/zhubaixue/p/7207275.html
Copyright © 2011-2022 走看看