这是我的班级。 getPosts
方法返回一个数组,但我无法在proceedPosts
中访问该数组。当我尝试在浏览器中打印时,它会向我显示$result
变量不是defined
的错误。
class myClass
{
public $myposts;
public function getPosts()
{
$result = $this->myposts = array('a','b','c');
return $result;
}
public function handlePosts()
{
echo $result;
}
}
$myObj = new myClass();
$myObj->getPosts();
$myObj-> handlePosts();
有人能解释我为什么吗?谢谢。
答案 0 :(得分:0)
第一个问题$result;
在handlePosts()
函数中未知,您尝试回显一个必须具有toString
数组的数组,以便让您的代码正常运行:
<?php
class myClass
{
public $myposts;
public function getPosts()
{
$result = $this->myposts = array('a','b','c');
return $result;
}
public function handlePosts()
{
var_dump($this->getPosts());
}
}
$myObj = new myClass();
$myObj-> handlePosts();
?>
答案 1 :(得分:0)
您的$result
变量已在getPosts()
方法中创建,并且仅存在于此方法中(如果您愿意,则存在于范围内)。
如果您有以下代码,那么您在此方法中所做的回报才有意义:
$result_from_get_post_method = $myObj->getPosts();
如果要创建类范围的可访问变量,则必须在变量名前面使用$this
,例如:
class myClass
{
public $myposts;
public $result;
public function getPosts()
{
$this->result = $this->myposts = array('a','b','c');
return $this->result;
}
public function handlePosts()
{
echo $this->result;
}
}
$myObj = new myClass();
$result_of_method = $myObj->getPosts();
print($result_of_method); // prints result_of_method which contains array
print($myObj->result); // does the same as line above, by calling object variable
$myObj->handlePosts(); // echos the array