2012-03-19 10 views
5

それはあまり重要ではないが、私はその違いを知りたいと思った。真の出力1を返すがfalseを返すと何も出力しない

echo isA("A"); //outputs 1 

echo isA("B"); //outputs nothing. why doesn't it output 0? 

誰でもこの問題を解決できますか? 「真」の出力が「1」であるが「偽」は「0」を出力しないという観点から見ると、私は二重の標準と思われる。

また、大したことはありませんが、PHPのように設計する必要があると思います。そのことを知ることで、この美しい言葉をより深く理解することができます。

真の値は目に見える1として現れますが、偽の値は現れません。だから、この方法の利点は何ですか?

例機能私は上記を参照しました。

function isA($input){ 
    if ($input == "A"): 
     return true; 
    else: 
     return false; 
    endif; 
} 
+0

美しい言語ですか?反対です(しかし、私もPHPプログラマーです):P –

+2

@MuhammadAbrar:美しさはこれとは関係ありません。 – netcoder

答えて

11

の差分使用var_dump();を参照します。 Boolean FALSEは を ""(空文字列)に変換します。これにより、ブール値と文字列値の間の変換が戻って になります。

http://us3.php.net/manual/en/language.types.string.php#language.types.string.casting

あなたがのvar_dumpたりしますprint_rを使用することができますデバッグするためのブール値を印刷したい場合。

+0

+1のリンクです。 –

5

falseを文字列にキャストされたときには、''となりますので - 、空の文字列。

ブール値TRUEを文字列 "1" に変換される代わりecho

var_dump((string) true); 
var_dump((string) false); 
関連する問題