PHP范围解析运算符问题
作者:互联网
我在MyClass :: function()中遇到麻烦;调用方法的样式,无法弄清楚原因.这是一个示例(我正在使用Kohana框架btw):
class Test_Core
{
public $var1 = "lots of testing";
public function output()
{
$print_out = $this->var1;
echo $print_out;
}
}
我尝试使用以下命令来调用它,但是它返回$var1作为未定义:
Test::output()
但是,这很好用:
$test = new Test();
$test->output();
我通常使用这种调用对象的方式,而不是“新类”的方式,但是我不知道为什么它不起作用.
解决方法:
使用这个:
Test::output()
您将您的方法称为静态方法-且静态方法无权访问实例属性,因为没有实例.
如果要使用属性,则必须实例化该类以获取对象,然后在该对象上调用方法.
手册的几个链接,作为参考:
> Classes and Objects部分-您应该真正阅读本部分;-)
> Properties
> The Basics
> Static Keyword-对于这个特定问题也很有趣;-)
引用我链接到的最后一页:
Because static methods are callable
without an instance of the object
created, the pseudo-variable$this
is not available inside the method
declared as static.
和:
Calling non-static methods statically
generates anE_STRICT
level warning.
标签:kohana,scope,php 来源: https://codeday.me/bug/20191210/2099647.html