php bool値をそのまま演算

前の記事で
「作ったコードをささっとストック」とあったが滅多にストックしないので効率の悪い
制作になる事もある。
ストックしようと思って過去の同じ機能のソースを追うと・・・・

これが結構違っていて、やはり新しいコードの方が作りとして進化しています。
ストックしない方が良いコードになるケースが多い事に気付きました。
だからと言ってストックしないわけではなくライブラリーやSQL、フレームワーク等に
関しては忘れる事の方が多いので機能でのテンプレートになるようなコードをストック
する事にしました。

ところで、以下の計算をしてみると、
echo true + false . "\n";
結果は、1 になる。

echo true + true . "\n";
結果は 2 になる。

echo false + false . "\n";
結果は 0 になる

と全部やらなくとも、boolean型の true は 1になり
boolean型の false は 0になる。
これが自動キャストなのか元々、true,false を 1, 0 で定義しているのかは不明。

どうしてこんなことをしたかというと、empty($x) ^ empty($y)の排他的論理和が正しく計算されないと
言われたので調べたのだが、これなら正しく機能するはずなので、実際のempty()戻り値を演算している
ところを確認してみる。
というか確認するまでもなく正しく動作するはず、動作しなければ原因を追記します。