【发布时间】:2016-06-26 05:15:54
【问题描述】:
我使用下面的代码块来验证唯一用户名。
function validateRepositoryUnique($field, $list, &$valid) {
if ( preg_grep('/^'.preg_quote($field->value).'$/i', $list) == -1) {
$valid = false;
$field->valid = false;
$field->error = '"' . $field->value . '" already exists.';
return false;
}
return true;
}
示例。
$filed->value = "test";
$list = array('test','test1','Test');
但是我在 $filed->value 中通过了“测试”。当我做var_dump(validateRepositoryUnique($field, $list, &$valid));时,布尔值一直显示bool(true)
无论我输入什么“test”、“abc”、“a”,布尔值都保持返回值bool(true)。
我的意图是当在数组中找到文本时,它将 $valid 的值返回为 false 并打印出错误。
为我糟糕的英语和我对 PHP 编程语言的基本知识道歉。
【问题讨论】:
-
你考虑过使用 in_array() 吗?
-
我没有尝试过,但似乎无法验证我想要的区分大小写和正确格式。
标签: php validation