我有一个像:
这样的数组array(
'username' => array(
'required' => true,
'min' => 5,
'max' => 20,
'unique' => 'users',
'name' => 'Username'
)
);
这个数组进入函数(这不是完整的函数):
//$source = $_POST
public function validate($source, $items = array()) {
foreach($items as $item => $rules) {
foreach($rules as $rule => $rule_value) {
//db->sanitize = mysqli_real_escape_string()
$value = $this->db->sanitize($source[$item]);
if($rule === 'required' && empty($value)) {
//The problem is here with $rule['name']
$this->addError($rule['name'].' is empty');
}
}
}
}
所以我想使用数组中的'name'
键来显示用户友好的输入字段名称,但它返回的全部是:警告:非法字符串偏移'名称'在
答案 0 :(得分:2)
$rule
和$rule_value
都是字符串。它们是$rules
数组的键/值(分别)。
我猜你想要$rules['name']
。
if($rule === 'required' && empty($value)) {
$this->addError($rules['name'].' is empty');
}