1

私は現在、このコードを持っています:

if (strlen(trim($username) < 4)) {
$error='Username should be between 4 and 10 characters.';
}

if (strlen(trim($username) > 10)) {
$error='Username should be between 4 and 10 characters.';
}

これを次のように、より単純なステートメントにまとめたいと思います (ただし、明らかに機能しません)。

if (strlen(trim($username) < 4 >10))... // parse error
4

4 に答える 4

3

この構文は正しくありません||。演算子を使用する必要があります。

if (strlen(trim($username)) < 4 || strlen(trim($username)) > 10) {
    $error='Username should be between 4 and 10 characters.';
}
于 2013-01-09T18:45:55.657 に答える
3

基本的に、数値が指定された範囲内にあるかどうかを確認しているだけなので、別のオプションは になりますfilter_var()が、少し怖いです:

if(!filter_var(strlen(trim($username)), FILTER_VALIDATE_INT, array('options' => array('min_range' => 4, 'max_range' => 10))))
{
    $error='Username should be between 4 and 10 characters.';
}
于 2013-01-09T18:52:58.707 に答える
2

ここで、||(or) 演算子の使用が役立ちます。

trim()また、strlen()関数が複数回呼び出されるのを防ぐために、ユーザー名を変数に割り当てた方法にも注意してください。それはただ無駄です。

コード

$username = trim('bob');
$username_length = strlen($username);
if ($username_length < 4 || $username_length > 10)
{
    echo 'Username should be between 4 and 10 characters.';
}
于 2013-01-09T18:50:41.993 に答える
-1

よくあなたはすることができます:

(strlen(trim($username)) < 4 || strlen(trim($username)) > 10) && $error='Username should be between 4 and 10 characters.';

ただし、最初にトリミングされたユーザー名の長さを定義する方がはるかに効率的です。

$len = strlen(trim($usename));
($len < 4 || $len > 10) && $error = "Bad username";
于 2013-01-09T18:45:27.627 に答える