2011-11-24 15 views
1

私はTRUEまたはFALSEまたは"Test_operation"を返す関数を持っています。これをループしていくつか行います。ご覧のとおり、$comment_replyの値はTest_operationです。文字列の値がtrueと等しい

$comment_reply = $this->Profunction->insert_comments(); 
echo $comment_reply; // returns Test_operation 
if ($comment_reply==TRUE) 
{ 
    echo json_encode('Success'); 
} 
elseif($comment_reply==FALSE) 
{ 
    echo json_encode('Failed'); 
} 
elseif($comment_reply =="test_operation") 
{ 
    echo json_encode('This Action Cannot be done!'); 
} 

しかし、まだ

if ($comment_reply==TRUE) 
{ 
    echo json_encode('Success'); 
} 

この部分は実行さばかり。それはなぜ起こるのですか?

その関数の中で、私は次のように戻っています:

解決しよう
return TRUE;  // if all success 
return FALSE;  // if there is some problems 
return "Test_operation";  //No insertion need to be done,may be for preview purpose. 

:私は、文字列にbool値を変更しました。 だから、

return 'TRUE';  // if all success 
    return 'FALSE';  // if there is some problems 
    return "Test_operation";  //No insertion need to be done,may be for preview purpose. 
+0

を使用してみてください。この場合、ソリューションは機能しますが、文字列の等号は文字列の場合と同じように扱いにくいことがあります。私は実際には、並べ替えの比較を行うときに===を完全にタイプと値を比較することを確認することをお勧めします。ああ、最高の答えに投票することを忘れないでください。あなたの投稿の受け入れ評価は一種低いです。ありがとう&あなたに良い一日。 – stefgosselin

+0

@stefgosselinオハイオ州申し訳ありませんが、私はあなたの答え[最初の答えと良い説明]を受け入れましたが、PHPのような外観はC#と比較すると非常に悪いですが、使い方はとても簡単です。 – Red

+0

私のコードを '===' – Red

答えて

3

それはあなたの問題ですが、あなたは===演算子を使用し、タイプによって値を平等を強制したい場合はわからないだろう。

詳細はcomparison operator pageで確認できます。

+0

に変更しました。ありがとうございます。しかし、私は 'boolean'を避けるとこれを避けることができると思います。 – Red

+0

あなたが望むように、私の友人。ブール値はOKですが、PHPでは多くのことを覚えておかなければなりませんが、===はあなたの期待どおりに真を返します。 – stefgosselin

+0

私は今、理解しています。実際には、私はC#から来て、今PHPを試しています。 – Red

1

コーディング

幸せはあなたが本当にあなたがブール値を避けることによって、それを回避、問題を「解決」しませんでした===代わりの==

関連する問題