用户名必须以字母开头-PHP

用户名必须以字母开头-PHP,php,arrays,if-statement,alphabetical,alphabet,Php,Arrays,If Statement,Alphabetical,Alphabet,我的目标是让表单在用户名输入不是以字母开头时警告用户。不幸的是,尽管输入的用户名以字母开头,但条件仍然为真 下面的代码是一个变量,它包含一个数组,用于存储所有26个大写和小写字母 $alphas = array_merge(range('a', 'z'), range('A', 'Z')); 然后使用下面的代码输出错误消息 if (empty($username)){ array_push($errors, "*Username cannot be blank<br>");

我的目标是让表单在用户名输入不是以字母开头时警告用户。不幸的是,尽管输入的用户名以字母开头,但条件仍然为真

下面的代码是一个变量,它包含一个数组,用于存储所有26个大写和小写字母

$alphas = array_merge(range('a', 'z'), range('A', 'Z'));
然后使用下面的代码输出错误消息

if (empty($username)){
    array_push($errors, "*Username cannot be blank<br>");
}else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
    array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
}else if($username[0] !== $alphas){
    array_push($errors, "*Username must begin with a letter<br>");
}
if(空($username)){
数组\u push($errors,“*用户名不能为空
”); }如果(!preg_match(“/^[a-zA-Z0-9_]*$/”,$username)){ 数组\u push($errors,“*用户名只能包含字母数字字符或下划线
”); }else if($username[0]!==$alphas){ 数组\u push($errors,“*用户名必须以字母开头
”); }
条件为“if($username[0]!==$alphas)”,但它会不断返回TRUE,这意味着无论用户名输入的第一个字母是什么,它都会显示消息“*用户名必须以字母开头”


如何解决此问题?

下面的代码工作正常

    $alphas = array_merge(range('a', 'z'), range('A', 'Z'));

    $errors=array();
    $username="username";
    echo $username[0];
    if (empty($username)){
        array_push($errors, "*Username cannot be blank<br>");
    }else if(!preg_match("/^[a-zA-Z0-9_]*$/",$username)){
        array_push($errors, "*Username can only contain alpha-numeric characters or an underscore<br>");
    }else if(!in_array($username[0],$alphas)){
        array_push($errors, "*Username must begin with a letter<br>");
    }else{
         echo "correct username";
// do what ever you want to code but do not hurt you mother :) :)
         die;
    }

    print_r($errors);
$alphas=array_merge(范围('a','z'),范围('a','z'));
$errors=array();
$username=“username”;
echo$username[0];
if(空($username)){
数组\u push($errors,“*用户名不能为空
”); }如果(!preg_match(“/^[a-zA-Z0-9_]*$/”,$username)){ 数组\u push($errors,“*用户名只能包含字母数字字符或下划线
”); }else如果(!in_数组($username[0],$alphas)){ 数组\u push($errors,“*用户名必须以字母开头
”); }否则{ 回显“正确的用户名”; //做任何你想编码但不伤害你的事母亲:):) 死亡 } 打印错误($errors);
==
是一个相等运算符,它不会检查数组中是否存在元素(提示:)。或者,由于您已经在使用正则表达式验证提交,您可以修改它以单独检查第一个字符。因此,您可以执行$username[0]($username表示“hello”),它将具有“h”。所以你可以用它来检查第一个字符是否是有效字符(a-Z)。。。你可以批准它作为答案