WEBBLOG

PHP7で型を意識した演算

PHP7で型を意識した演算

演算をするときに、型によっては想定していた答えとは異なることがあります。型は、どの言語でも意識することがすごく大切で、string型(文字)やint型(整数)などは演算のときに言語によって型が自動変換されます。PHPやJSではこの自動変換にきおつけること大切なので、今回はその例を紹介します。

PHP7で同じ型を演算した例↓

<?php
echo 1 + 1 . PHP_EOL; // 2
echo 1 - 1 . PHP_EOL; // 0
echo 2 * 2 . PHP_EOL; // 4
echo 2 / 2 . PHP_EOL; // 1
echo 5 % 2 . PHP_EOL; // 1(余り)
echo 10 ** 2 . PHP_EOL; // 100(べき乗)
?>

PHP7で異なる型で演算した例↓

<?php
echo 20 . '文字' . PHP_EOL; // 20文字
echo 10 . '10' . PHP_EOL; // 1010
echo 10 + '10' . PHP_EOL; // 1010ではなく、「20」になる
?>

上のように、文字列「’10’」が整数の「10」に変換され、「10 + 10 = 20」になります。開発する上でこのように自動で型が変換されると困ることもあるので、理由がない限りはできるだけ、型を手動で変換してから演算することがおすすめです。