我在我的类中声明了一个变量protected,然后我在第一个函数中为变量赋值。然后我想使用相同的变量,其值在另一个函数中。但是没有用,任何人都可以告诉我我做错了什么,或者是否有可能做到这一点或如何做到这一点。以下是我的代码示例:
class Forecast {
protected $myStream;
public function ajaxForecast() {
$myStream = $GET_["selectedStream"];
return json_enconde($myStream);
}
public function show() {
echo $myStream;
}
}
答案 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
}