PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP-重新声明实例和静态函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

class me {
   private $name;
   public function __construct($name) { $this->name = $name; }
   public function work() {
       return "You are working as ". $this->name;
   }
   public static function work() {
       return "You are working anonymously"; 
   } 
}

$new = new me();
me::work();

致命错误:无法重新声明我:: work()

问题是,为什么PHP不允许这样的重新声明.有什么解决方法吗?

解决方法:

尽管我很可能永远不会在生产代码中执行以下操作,但实际上使用魔术方法创建可以解决此问题:

在对象范围内调用不可访问的方法时,内部会触发__call.

在静态范围内调用不可访问的方法时,内部会触发__callStatic.

<?PHP

class Test
{
    public function __call($name, $args)
    {
        echo 'called '.$name.' in object context\n';
    }

    public static function __callStatic($name, $args)
    {
        echo 'called '.$name.' in static context\n';
    }
}

$o = new Test;
$o->doThis('object');

Test::doThis('static');

?>

大佬总结

以上是大佬教程为你收集整理的PHP-重新声明实例和静态函数全部内容,希望文章能够帮你解决PHP-重新声明实例和静态函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: