在PHP中,我们如何将一个检查的结果消息优先于另一个检查?
我的 PHP 文件中有两个不同的 if 条件,有两个不同的消息。
某些字符串同时匹配两者,但即使if (preg_match)
位于脚本中的if !(preg_match)
上方,结果也会显示错误 msg!(preg_match)
例:
if (preg_match('/^[x{0600}-x{06FF}]*$/u', $value)){
$return = $register_msg['ihc_error_please_write_yourname_in_english'];
}
if (!preg_match('~[eyuioa]~',$value)) {
$return = $register_msg['ihc_error_no_vowels_found'];
}
现在,例如,当用户通过阿拉伯字符输入他的名字时,尽管他的字符串同时满足这两个条件,但不幸的是,他会['ihc_error_no_vowels_found']
而不是['ihc_error_please_write_yourname_in_english']
。
您可以使用
$register_msg = ['ihc_error_please_write_yourname_in_english' => 'English, please!', 'ihc_error_no_vowels_found' => 'No vowels!' ];
$value = 'سبعة';
$return = "";
if (preg_match('/^[x{0600}-x{06FF}]*$/u', $value)){
$return .= $register_msg['ihc_error_please_write_yourname_in_english'] . PHP_EOL;
} else if (preg_match('~^[A-Za-z]+$~',$value) && !preg_match('~[eyuioa]~',$value)) {
$return .= $register_msg['ihc_error_no_vowels_found'] . PHP_EOL;
}
echo $return;
查看带有阿拉伯语单词的 PHP 演示
English, please!
并且具有SFGH
值(请参阅此PHP演示(产生
No vowels!
preg_match('~^[A-Za-z]+$~',$value)
检查字符串是否仅由 1+ ASCII 字母组成。