编程语言
首页 > 编程语言> > PHP范围解析运算符问题

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 an E_STRICT level warning.

标签:kohana,scope,php
来源: https://codeday.me/bug/20191210/2099647.html