2011-10-09 17 views
7

PHPで変数がプリミティブ型であるかどうかをチェックするにはどのような方法が最も効率的(コード内で最も簡単に理解するのが最も簡単でしょう)ですか?PHPで変数がプリミティブであるかどうかをテストする方法

私は(「正」などis_string() || is_int()...)方法、またはその逆!is_array() && __is_object()..または多分いくつかさえも手の込んだ道を行くべきでしょうか?

+0

私は、個人的には、 'is_ ()'に固執します。彼らは理由のためにそこにいます(いつでも道の後に明快さと目的を保持しようとする)。 –

+0

a)** breiti **の答えb)**間違いなく**肯定的な方法 - どのような新しいタイプが飛び出すのかわからない - より良いアプローチは他のものと同じであると考えています:) –

答えて

17

あなたが探していますis_scalar()

+0

うわー、私はやったそれが存在するかどうかはわかりません。ありがとう! – Aurimas

+0

is_scalar()は実際にはブール値、整数、浮動小数点(double)および文字列に対してのみ機能します。配列、オブジェクト、リソース、NULLのプリミティブ型についての質問は、あなたの答えが常に機能するとは限らないためです。 –

+0

@ Pier-AlexandreBouchard配列とオブジェクトは一般的には基本的には基本的ではない(特にオブジェクトではない)とみなされますが、NULLは特殊な "型"です...本当に型ではありません。整数=>時間内に変更することができます:) –

0

私はそれがより論理的だとis_type()正のいずれかを使用して、疲れた時代になりあなたはすべてのネガで混乱します。

0

まあ、コードを読み込むことが最も簡単でis_primitive_type()を定義することが考えられます。私は効率が、このような簡単な操作のための任意の現実的な懸念である疑い。

関連する問題