あなたの問題は+
、PHP の文字列に対する演算子の誤解から来ています。文字列連結演算子は.
、PHP が緩く型付けされているため、文字列を連結するか追加するかを認識しません。
私はあなたのためにそれを分解します:
print false + "\n" + true + "\n";
echo false+(bool)false + "\n" + true + "\n";
print "0" + "\n" + true + "\n";
echo
まず、またはを選択することをお勧めしますprint
。さて、以下:
print false + "\n" + true + "\n";
PHP 文字列が追加された場合 (接続されていない場合)は、 に評価され0
ます。したがって、このステートメントは次のように評価されます。
print 0 + 0 + 1 + 0;
です1
。他のものはそれに続きます。コードを機能させたい場合は、連結演算子 ( .
) を使用する必要があります。.NET のやり方を書きたい、True
またはFalse
好きな場合は、単純な関数を書くことができます。
function writeBool($var)
{
echo ($var) ? "True" : "False";
}
PHP の緩やかな型付け (私に言わせればひどいことです) によると、 と評価されるtrue
ものはすべて"True" と記述されます。PHP での関数呼び出しはコストがかかるため、関数を使用してこれを行うことはお勧めしません。