本质上,我有一个带有可以写入数组的函数的消息类。我想在调用时通过函数返回该数组的实例。
这是班级:
class Message
{
public $formMessages = array();
public function __construct()
{
}
public function writeFormMessage($field, $message)
{
$formMessages[$field] = $message;
}
public function getFormMessages()
{
return $this->formMessages;
}
}
以下是我试图从另一个文件中获取formMessages数组的方法。是的,我已经在所述文件中有一个Message类的实例。
$test = $message->getFormMessages();
它失败了这个谓词,虽然它似乎无论如何都看不到数组:
if (!empty($test))
{
}
php错误是' Undefined变量:第45行的C:\ xampp \ htdocs \ test \ classes \ message.class.php中的formMessages'
修改:谢谢大家!
答案 0 :(得分:3)
在writeFormMessage
方法中查看此行:
$formMessages[$field] = $message;
尝试访问本地变量。 (该方法中不存在。)
比较getFormMessages()
中的这种用法:
return $this->formMessages;
您正确访问了预期的财产。
对两者使用相同的$this->
语法。
答案 1 :(得分:1)
public function writeFormMessage($field, $message)
{
$formMessages[$field] = $message;
}
public function getFormMessages()
{
return $this->formMessages;
}
你在这里说的不同,这就是为什么你从结果中得到空洞的原因。
你认为你正在引用相同的var,但你不是。 $formMessages
是仅存在于WriteFormMessage
函数内的变量,而$this->formMessages
位于其外部。
然后您必须使用$this
引用它才能获得正确的结果。
$this->formMessages[$field] = $message;