2011-07-08 1 views
1

次の2つのIF条件に違いはありますか?PHP:IF条件

if ($insert_id) 
{ 
.. 
} 



if($insert_id != NULL) 
{ 
.. 
} 

実際、関数はmysqlの挿入IDを返します。この関数がidを返したかどうかを確認したいと思います。

+0

mysql関数はブール値を返します。エラー時にはFALSEを返し、その他の場合は成功します。彼らはnullを返すべきではありません。 –

+0

@Marc Bなので、いくつかのmysqlエラーがあり、それではinsert_idが返されない場合、最初の条件はtrueになりますか?整数(insert_id)が返された場合にのみ、条件が真であることを確認するためにどのメソッドを使うべきですか?他のすべての場合には、それは偽でなければならない。 – Roman

+0

いいえ、失敗は偽に変わったので、それはまだ間違いでしょう。 'if($ result_from_mysql === FALSE){... failure ...}'で明示的にテストすることができます。 –

答えて

0

いいえ、違いはありません。

!== NULLを使用したとしますか?もしそれがちょうど!= NULLならば、それはfalse、 ''(空文字列)、または整数値0に対しても評価されます。

$ insert_id == trueの略語は最初の文と同じです。 != falseまたは!= NULLと同じです。

1

NULLは、FALSE、ゼロ、空の文字列と大差がありません。基本的には

Study this table to learn about comparisons.

$value = NULL; 

if($value == FALSE) // True 
if($value == '') // True 
if($value == 0) // True 
while... 
if($value === FALSE) // False 
if($value === '') // False 
if($value === 0) // False 
0

$insert_idmysql_queryによって返された結果に属している場合は、最初のものを使用します。

if ($insert_id) 
{ 
    // do stuff 
} 
0
if (!empty($insert_id)) 
{ 

} 

if($insert_id > 0) 
{ 

} 
0

PHP言語では、式ブーリアーナ(正しいもの)を返す必要はありません。 0、false、nullと ""(空の文字列)のいずれかが異なるものがあります。

0

何をしようとしているのかに違いはありません。

基本的には、変数が設定されているかどうかを確認することです。 ゼロ以外の式は本質的に真であるため、値がある場合は と評価されます。

唯一の時間は、特にNULL値をチェックしていた場合です。