0

私はこれを短くしたい。用語が正しいかどうかはわかりませんが、この例はCodeigniter ハンドブック Vol.1から入手しました。

if (count($args) > 1 || is_array($args[0]))

私はこの問題に何度も遭遇しました。データ型に応じて、さまざまなテストがより適切です。一部のテストは、予期しない方法で失敗します。

最も適切で、おそらく最も簡潔なテストをどのように決定するのでしょうか?

明確にするために、可能であれば、データ型に関係なく、オブジェクト/変数を使用する準備ができているかどうかをテストする最も効果的な方法を探しています。

また、例のようにリストだけにソリューションを適用したくありません。広く適用できるはずです。

4

3 に答える 3

6

を使うだけ

if(!empty($args)){
  echo 'Array is set, not empty and not null';
}
于 2012-10-28T05:09:53.747 に答える
1

空()を使用するbool empty ( mixed $var )

http://www.php.net/manual/en/function.empty.php

変数が空であると見なされるかどうかを判別します。変数が存在しない場合、またはその値が FALSE の場合、その変数は空と見なされます。変数が存在しない場合、 empty() は警告を生成しません。

于 2012-10-28T05:08:29.300 に答える
0

私はしばらくの間、次の機能を使用しています。

可能なすべての変数タイプに対して独自のテストを追加できます。

function is_valid_var($var)
{
  if ( isset( $var ) ) {

    // string
    if ( is_string( $var ) && strlen( $var ) == 0 ) return false;

    // array
    elseif ( is_array( $var ) && count( $var ) == 0 ) return false;

    // unknown
    else return true;
  }

  return false;
}
于 2012-10-28T05:30:20.257 に答える