2

重複の可能性:
PHPでの2倍の等しい値と3倍の等しい値

空ではないさまざまなタイプの「空の」変数に対してテストしようとしています。よく出てくる状況の1つは

文字列が"''"(つまり、2つの一重引用符文字)に等しい場合はxyzを実行し、そうでない場合はabcを実行します。

さまざまなタイプの変数があります。これらは、0、「0」(つまり、値0ではなく文字「0」、ASCII 48)、および「」(空の文字列)です。これらはすべて、2つの一重引用符を含む文字列である「''」と同じように評価されます。明らかに、それらは同じではありません!1つはASCII39、ASCII 39の2文字の文字列で、他は0、ASCII48などです。

is_numeric()などを使用した回避策を考え出しましたが、もっと良い方法があるはずだと思わずにはいられません。この種のものを処理するための好ましい方法は何ですか?

非常に素朴な質問のように思われることについて、今しばらくお待ちいただきますようお願いいたします。

4

3 に答える 3

5

詳細については、 if(!empty($string)) http://php.net/manual/en/function.empty.phpを使用することもできます。

于 2012-12-13T02:11:04.393 に答える
3

同一の演算子 (===) を使用して、型と値をチェックできます。詳細については、 http://php.net/manual/en/language.operators.comparison.phpを参照してください。

于 2012-12-13T02:05:41.037 に答える
1

同じチェックをすると

if ($string === '')

その後、あなたが求めている結果が得られます。

演算子の種類とその効果の詳細については、この前の SO 回答を参照してください

于 2012-12-13T02:05:14.320 に答える