PHPにおける自動型変換
PHPでは文字列は引用符で囲む必要があることはすでにご存知でしょう。 文字列のすべての文字が数字である場合があります。 この場合、数字の文字列に対して何らかの算術演算を実行すると、 その操作は、文字列ではなく実際に数字があるかのように実行されます:
<?php
echo '1' + '2'; // 3を出力します
?>
この場合、PHPは、文字列には許可されていないが数値には許可されている 操作を実行しようとしていることを認識します。 また、実際には文字列が引用符で囲まれた数字であることも認識します。 したがって、PHPは自動的にこれらの文字列を数値に変換し、 それらに対して対応する算術演算を実行します。
数字の文字列と通常の数値の加算についても同様に起こります:
<?php
echo '1' + 2; // 3を出力します
?>
この場合、加算の順序は問題になりません:
<?php
echo 1 + '2'; // 3を出力します
?>
上記の説明は、変数に対しても同様に機能します:
<?php
$a = '1';
$b = '2';
echo $a + $b; // 3を出力します
?>
コードを実行せずに、画面に何が表示されるか判断してください:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>