php类变量来自另一个函数上使用的函数

时间:2012-12-19 10:40:20

标签: php

我在我的类中声明了一个变量protected,然后我在第一个函数中为变量赋值。然后我想使用相同的变量,其值在另一个函数中。但是没有用,任何人都可以告诉我我做错了什么,或者是否有可能做到这一点或如何做到这一点。以下是我的代码示例:

class Forecast {
   protected $myStream;

   public function ajaxForecast() {
      $myStream = $GET_["selectedStream"];
      return json_enconde($myStream);
   }

   public function show() {
      echo $myStream;
   }

}

3 个答案:

答案 0 :(得分:4)

你应该使用

class Forecast {
    protected $myStream;

    public function ajaxForecast() {
        $this->myStream = $_GET["selectedStream"];
        return json_encode($this->myStream);
    }

    public function show() {
        echo $this->myStream;
    }
}

始终在类中使用$ this语句。

答案 1 :(得分:0)

您没有使用$this关键字。因此,您要创建一个新的局部变量$myStream,而不是像您认为的那样为实例字段赋值。 $myStream的范围仅限于函数ajaxForecast,并且在此之外不可用。 $this->myStream的范围在对象本身(以及任何子类)中。

public function ajaxForecast() {
    $this->myStream = $GET_["selectedStream"];
    return json_enconde($myStream);
}

来自php.net

  

调用方法时,伪变量$ this可用   在对象上下文中。 $ this是对调用对象的引用   (通常是方法所属的对象,但可能是另一个   object,如果从a的上下文静态调用该方法   次要对象)。

php oop here上的文档

答案 2 :(得分:0)

我强烈建议您阅读本手册。

像这样使用

public function Show() { 
   echo $this->myStream;
   // or use return $this->myStream
}