PHP可以通过类名调用非静态方法
2014-08-19 15:12
141 查看
今日有兄弟遇上一个问题,就是可以通过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 = 'jken';
echo "\n";
echo __METHOD__;
echo "\n";
}
}
?>
也就是如果你的方法内没有涉及到实例化的本类引用,就可以直接调用了
以下是测试代码:
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 = 'jken';
echo "\n";
echo __METHOD__;
echo "\n";
}
}
?>
相关文章推荐
- php上传的例子,cocos2d也可以通过http配合调用
- PHP中通过ADODB库实现调用Access数据库之修正版本 原创
- PHP中通过ADO调用Access数据库的方法测试不通过
- 通过PHP SOAP Client调用OBIEE WebService的例子
- Java 可以通过 Runtime 调用Linux命令
- PHP通过php-java-bridge 调用Java类中方法
- 怎样在PHP中通过ADO调用Asscess数据库和COM程序
- 网站子目录绑定二级域名 php虚拟主机可以通过添加个.htaccess文件实现绑定
- 通过ajax调用php生成json转给js,生成html
- php通过SoapClient进行SOA调用
- php调用dll(VS的dll可以,vb的失败)
- PHP中通过ADODB库实现调用Access数据库之修正版本[原创]_php技巧_脚本之家
- 如何在PHP中通过ADO调用Asscess数据库和COM程序
- 如何在PHP中通过ADO调用Asscess数据库和COM程序
- Java牛角尖【008】: 可以通过调用一个线程的run方法启动一个线程吗?
- 如何在PHP中通过ADO调用Asscess数据库和COM程序
- PHP中通过ADO调用Access数据库的方法测试不通过
- SSRS时可以通过参数来调用一个报表
- C#.Net里面通过事件调用事件,通过简单了解相信可以帮你解决问题
- C#反射之Assembly---CLR/c++可以通过反射调用c#类库