博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP魔术方法使用
阅读量:6683 次
发布时间:2019-06-25

本文共 939 字,大约阅读时间需要 3 分钟。

PHP魔术方法的使用

1、__get()   和  __set();

2、__call()   和  __callStatic();  

3、__toString();

4、__invoke();

 

1、__get()   和  __set();

一个php类文件为 object.php:

Class Object {

  private $array = array();

  function __set($key , $value){

    var_dump(__METHOOD__);

    $this->array[$key] = $value;

  }

  function __get($key){

    var_dump(__METHOOD__);

    return $this->array[$key];

  }

  function __call($func,$param){

    var_dump($func,$param);

    return 'magic function';

  }

  static function __callStatic(){

    var_dump($func,$param);

    return 'magic static function';

  } 

}

 

当我们给一个没有的属性赋值时会自动调用__set();

输出一个没有的属性的时候会自动调用__get();

测试代码如下:

$obj = new Object();

$obj->title = 'zhangshan';

echo $obj->title;

会得到以下结果:

2、__call()   和  __callStatic();  

当我们访问一个不存的方法时会自动调用__call();

echo $obj->test('Hello World',123);

会得到以下结果:

__callStatic()跟__call()大体相同只不过是针对static声明的方法

echo $obj::test('Hello World',123);

会得到以下结果:

 

转载于:https://www.cnblogs.com/wenhainan/p/5337767.html

你可能感兴趣的文章
Linux基础:CentOS安装python3.7
查看>>
Daily Scrum: 2012/11/27
查看>>
vue学习中v-if和v-show一起使用的问题
查看>>
获取一个月前的当前时间
查看>>
第三期 预测——1.简介
查看>>
behavior planning——12.example cost funtion -lane change penalty
查看>>
基于 Spring + Atomikos + Mybatis的多数据源配置demo
查看>>
随笔-刚毕业找工作的点滴(程序员)
查看>>
利用poi3.8中SXSSFWorkbook实现大数据量导出excel
查看>>
day34-1 面向对象概述
查看>>
GCD之dispatch queue
查看>>
【Oracle】-初识PL/SQL
查看>>
黄聪:超实用的PHPExcel[导入][导出]实现方法总结
查看>>
模板变量,过滤器和静态文件引入
查看>>
Oracle 中的 Schema
查看>>
Web APi之认证(Authentication)两种实现方式后续【三】(十五)
查看>>
一条语句简单解决“每个Y的最新X”的SQL经典问题
查看>>
(转)链接服务器——获取EXCEL数据
查看>>
Go数组
查看>>
javascript在我的工作的用法
查看>>