如果您希望用户输入数据,我正在创建白名单。我遇到了elseif语句。if/elseif/else问题
这是我的代码:
public function is_valid_data($data)
{
if(strlen($data > 9))
{
$this -> set_message('is_valid_data', 'Field needs to be less than 9 characters');
return FALSE;
}
elseif(strlen($data < 9))
{
$this -> set_message('is_valid_data', 'Field can not be under 9 characters');
return FALSE;
}
elseif((substr($str, 0, 1) !== 'testing') || (substr($str, 0, 1) !== 'test'))
{
$this -> set_message('is_valid_data', 'Please re-submit data!');
return FALSE;
}
elseif(!preg_match("/^[0-9]/", $str))
{
$this -> set_message('is_valid_data', 'Please dont forget about the numbers!');
return FALSE;
}
else
{
return TRUE;
}
}
因为即使$的数据是9个字符的第一个if语句经过某种原因,那么第二个失败,我不断收到“字段不能为下9个字符'尽管$数据正好是9个字符。我返回false是因为在另一个脚本中,我有函数调用is_valid_data($ data),并且如果此函数返回false,则它会将错误返回给用户。如果它返回true,那么数据是有效的,我们可以继续
我似乎无法动摇这个问题。
你想比较'strlen($ data)'的结果到9,你现在在函数调用里面进行比较:'strlen($ data)> 9'和'strlen($数据<9)' - 看到区别? –
是啊...我是一个noob我什至没有注意到这个问题:(谢谢 – user2406611