首页 > 代码库 > PHP可以通过类名调用非静态方法
PHP可以通过类名调用非静态方法
今日有兄弟遇上一个问题,就是可以通过class名称直接调用该类中的函数,我测试了一下,确实可以,概念中是只有静态方法才可以这样调用的,现在 被刷新了,于是我在方法中加入一行$this相关的操作,再运行,立马报错了,也就是PHP在调用方法时,没有严格限制,但是在方法内部执行时,遇 上$this这个变量时抛出: Using $this when not in object context
也就是如果你的方法内没有涉及到实例化的本类引用,就可以直接调用了
以下是测试代码:
t::t1();
class t{
private $data;
public static function t1(){
echo "\n";
echo __METHOD__;
echo "\n";
self::f1();
}
public static function t2(){
echo "\n";
echo __METHOD__;
echo "\n";
}
public function f1(){
$this->data = http://www.mamicode.com/‘jken‘;
echo "\n";
echo __METHOD__;
echo "\n";
}
}
?>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。