Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 PHP中__call的用法实例

PHP中__call的用法实例

发布时间:2015-04-03   编辑:www.jquerycn.cn
PHP中__call的用法实例,有需要的朋友可以参考下。public mixed __call ( string $name , array $arguments ) public static mixed __callStatic ( string $name , array $arguments )

PHP中__call的用法实例,有需要的朋友可以参考下。

public mixed __call ( string $name , array $arguments )
public static mixed __callStatic ( string $name , array $arguments )
当调用一个不可访问方法(如未定义,或者不可见)时,__call() 会被调用。

当在静态方法中调用一个不可访问方法(如未定义,或者不可见)时,__callStatic() 会被调用。
$name 参数是要调用的方法名称。$arguments 参数是一个数组,包含着要传递给方法$name 的参数。

演示代码:
 

复制代码 代码如下:

<?php
class PersonWriter {

    function writeName( Person $p ) {
        print $p->getName()."\n";
    }

    function writeAge( Person $p ) {
        print $p->getAge()."\n";
    }
}

class Person {
    private $writer;

    function __construct( PersonWriter $writer ) {
        $this->writer = $writer;
    }

    function __call( $method, $args ) {
        if ( method_exists( $this->writer, $method ) ) {
            return $this->writer->$method( $this );
        }
    }

    function getName()  { return "Bob"; }
    function getAge() { return 44; }
}

$person= new Person( new PersonWriter() );
$person->writeName();
$person->writeAge();
?>

官方文档:http://cn2.php.net/__call

您可能感兴趣的文章:
有关PHP的__call学习参考
PHP中__call的用法实例
php中的__call方法
PHP5试用(二)
PHP三种方式实现链式操作
php __call、__set 和 __get的用法介绍
PHP使用redis作为缓存(高效技术)
php面向对象__call处理错误调用技巧
php面试题目 面向中等水平的程序员
php链式操作的实现

[关闭]