はじめに
こんにちは、まりあ様です^^
PHP触ってて衝撃的だったことをメモがてら、残します。echoでのboolean型出力
例えば、期待値としてtrue、falseが返却される以下のソースコードがあるとします。
$testTrue = true;
$testFalse = false;
echo $testTrue; // 想定している返却値は、true
echo $testFalse; // 想定している返却値は、false
これを実際に出力すると、、、、
1 // true
"" // false
となるんです。。。。
もうこれ、JavaScriptとかかじったくらいで、console.logでとりあえずなんでも中身見る人なので、衝撃でした。
なんで、1とか空文字で返ってきてんの?boolean型のはずなのに?とか混乱しちゃいましたw
var_dumpでの出力
var_dumpで出力するとどうなるか???
$testTrue = true;
$testFalse = false;
echo $testTrue; // 想定している返却値は、true
echo $testFalse; // 想定している返却値は、false
これを実際に出力すると、、、、
bool(true) // true
bool(false) // false
var_dumpだと、ちゃんとtrue、falseで返ってくるみたいです!
まとめ
超~~ざっくりほんとに自分用メモですが、その日悩んだことが解決したすごい発見だったのでまとめておきました。
これ知らずに、echoで中身確認して、if ($testTrue === 1) {
みたいなif文書いて、期待通りの動きをしない、なんてことがありました。
今度から同じ失敗はしないように、アウトプットしておきました。
アメリカ大陸発見した並の衝撃でした。
以上、ほんとの自分用メモ(まとめとかの文章ひどい)でしたが、読んでくださった方はお付き合いありがとうございました!