您的位置:首页 > 编程语言 > PHP开发

PHP魔术方法使用

2016-03-30 16:33 766 查看
PHP魔术方法的使用

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);

会得到以下结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: