演算の際の型変換

広告

PHPでは値に対する型は存在しますが、必要に応じて自動的に変換が行われる場合があります。例えば数値と文字列、また数値同士であっても整数と浮動小数点数など異なっている型の値であってもPHPが型を変換し演算を行います。

整数と浮動小数点数

次の例を見てください。

3 + 2.4
1.72 + 7

このように「整数 + 浮動小数点数」や「浮動小数点数 + 整数」のように整数と浮動小数点数の演算が行われる場合には、まず整数が浮動小数点数に変換されてから演算が行われます。演算の結果も当然浮動小数点数となります。

数値と文字列

数値と文字列の値を加算したり減算したりした場合の扱いについて確認します。数値が記述されることを期待される演算子の値として文字列が記述された場合、次のように変換されます。

文字列の先頭に整数や浮動小数点数などがある場合は、文字列は先頭からの数値の部分の数値として変換されます。

'2008year'          // 2008
'1.02パーセント'    // 1.02

先頭の文字が数値でない場合は0として扱われます。

'こんにちは'        // 0
'year2008'          // 0

また整数と文字列の演算を行う場合に文字列が数値に変換した結果が浮動小数点数であった場合には、次に整数が浮動小数点数に変換され演算が行われます。

サンプルプログラム

では簡単なプログラムで試して見ます。

sample4-1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>

<p>PHPのテストです。</p>

<p>
<?php
echo "5 + 2.4 = ", 5 + 2.4, '<br />';
echo "5 + '8year' = ", 5 + '8year', '<br />';
echo "5 + '東京' = ", 5 + '東京';
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

演算の際の型変換

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)