1

ユーザー入力をチェックする次のコードがあります。

if(isset($_POST['block_name']) && !empty($_POST['block_name'])) {
    $block->name = trim($_POST['block_name']);
}

しかし、有効な入力として SPACE を受け入れるので、次のように変更しました。

if(isset($_POST['block_name']) && !empty($_POST['block_name']) && trim($_POST['block_name'])!='') {
        $block->name = trim($_POST['block_name']);
    }

Web で !=false も使用できることがわかりました。違いは何ですか、どれが推奨されますか。

4

5 に答える 5

5

''大まかな比較では等しいfalseので、実際の違いはありません。'0'ただし、等しいのでfalse、チェックをより厳密にすることをお勧めします。また、変数が設定されていない場合、エラーをトリガーせずemptyにチェックしているだけです。falseしたがってisset && !empty、そもそも冗長です。

使用する:

if (isset($_POST['block_name']) && strlen(trim($_POST['block_name'])) > 0)
于 2013-01-28T11:35:51.807 に答える
0

で空白を確認できます

  if( (strlen($string) == 1 ) && strpos(trim($string)," ")){

   echo "the string contains only a blank space";

  }
于 2013-01-28T11:35:11.997 に答える
0

if(empty($_POST['block_name']))チェックする必要があります:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

したがって、これは次の方法で行うのが最適です。if(!empty(trim($_POST['block_name']))) { //proceed...

于 2013-01-28T11:35:18.963 に答える
0

この条件ステートメントを使用します。うまくいくことを願っています。

if `$custSTR` is a sample string having spaces.

$custSTR = '     ';
if (strlen(trim(preg_replace('/\xc2\xa0/',' ',$custSTR))) == 0)
{
    echo "custSTR have space or empty.\n";
}
于 2013-01-28T11:38:54.377 に答える
0

結局、私はこの方法が最善だと思います:

if(isset($_POST['block_name']) && strlen(trim($_POST['block_name'])) > 1) {
        $block->name = trim($_POST['block_name']);
    }
    else {
        $errors[] = "Please give a name for the new block. It should be at least 2 characters";
    }

彼の答えに感謝します。

于 2013-01-28T11:59:57.877 に答える