Getter 和 Setter,静态和数组
Getter and Setter, static and array
我有一个错误 class 是这样的:
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>";
}
}
我得到 "Warning: Illegal string offset." 我的哪一个代码导致了这个问题?我该如何解决?
答案很简单,我只是使用 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);
}
}
我有一个错误 class 是这样的:
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>";
}
}
我得到 "Warning: Illegal string offset." 我的哪一个代码导致了这个问题?我该如何解决?
答案很简单,我只是使用 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);
}
}