1

私はphpでいくつかの簡単な検証ルールを構築していますが、私のIDE(phped)は構文について不平を言っています。

誰かが次の何が悪いのか教えてもらえますか?

function notBlank($str) {
    (strlen($str) == 0) ? return false : return true;
}

phpedは「予期しないリターン」について不平を言う

アドバイスをいただければ幸いです。

ありがとう。

4

5 に答える 5

13

このように書いてください:

function notBlank($str){
   return strlen($str) != 0;
}
于 2009-10-26T19:11:05.673 に答える
2

次のように書きます。

function notBlank($str) {
    return ( strlen($str) == 0 ? false : true );
}
于 2009-10-26T19:11:36.250 に答える
2

三項演算子内で return を使用することはできません。その構文を維持したい場合は、次のようにする必要があります。

function notBlank($str = '') {
    $var = (strlen($str) == 0) ? false : true;
    return $var;
}

それでも、デフォルトの方法の方が読みやすいことに注意してください。

function notBlank($str = '') {
    if(strlen($str) == 0)
        return false;
    else
        return true;
}

それが役に立てば幸い!

于 2009-10-26T19:21:08.417 に答える
1

ここでは GSto の回答が最良のようですが、php のempty機能もチェックしてみてください。

http://www.php.net/empty

于 2009-10-26T21:01:40.850 に答える
0

strlen()文字列が空の場合、および PHP では 0 を返します0==false。本当に、strlen()関数でラップする必要はありません。ブール値の答えを主張したい場合は、それをキャストしてください。すなわち:

(bool) strlen($string);

したがって、ifブロックで呼び出されると思われる関数の代わりに、次のようになります

if(strlen($string)) //etc.
于 2009-10-26T19:23:38.787 に答える