我有一个像这样的错误类:
class Error{
private static $_errors =[];
public static function getError()
{
return self::$_errors;
}
public static function setError($fields, $messages)
{
self::$_errors[$fields] = "$messages ";
}
}
然后我有另一个文件来访问这个getter和setter:
public function required($fields= array())
{
foreach($fields as $value) {
if (isset($this->_input[$value])) {
if (empty($this->clean($this->_input[$value]))) {
$name = self::changename($value);
$messages = "$name is required.";
error::setError($value, $messages);
}
} else{
$name = self::changename($value);
$messages = "$name not found.";
error::setError($value, $messages);
}
}
}
当我尝试打印这样的错误消息时:
if (!empty(error::getError())) {
foreach (error::getError() as $error) {
echo "<li>$error</li>";
}
}
我收到了“警告:非法字符串偏移”。我的哪一个代码导致了这个问题?以及我该如何解决它?
答案 0 :(得分:0)
答案很简单,我只使用 is_array ,因为看起来$fields
包含的是数组。如果它不是个人的。
foreach($field as $value) {
if (isset($this->_input[$value])) {
if (empty(Security::clean($this->_input[$value]))) {
$messages = "is Required.";
error::inputError($value, $messages);
}
} else{
$messages = "Tidak ditemukan.";
error::inputError($field, $messages);
}
}