PHPの基礎 - 数値
概要
文字列と並んで重要なデータ型である数値について記載する。
数値は、四則演算など計算を行うことが可能である。
数値リテラル
数値とは、整数や浮動小数点数等の数値である。
ただし、シングルクオーテーション'
やダブルクオーテーション"
で囲んで記述すれば文字列となる。
整数は10進数の他に8進数と16進数の形式で表記することができる。
955 // 先頭が0以外の整数は10進数の整数 034 // 先頭が0から始まりその後に数値が続くものが8進数 0x3A // 先頭が0xから始める数値は16進数 -82 // 負の整数(10進表記) -0xD2 // 負の整数(16進表記)
浮動小数点数は、小数点を含む数値である。
固定小数点形式を使用した記述方法の他に、指数表現も指定できる。
2.72 1.42E-5 // 1.42×10^(-5) -0.72 -8E14 // -8×10^(14)
四則演算
数値や文字列等の値に対して、計算および連結する演算子が存在する。
例えば、文字列同士を連結する.
演算子や変数に値を格納する=
演算子等である。
以下に、四則演算に関する演算子を示す。
- *
- 乗算
- /
- 除算
- +
- 加算
- -
- 減算
- %
- 剰余
演算子の優先順位
四則演算で使用した演算子等には、優先順位が決まっている。
複数の演算子を使用する式では、どの演算から行うのかが重要となる。
以下に、四則演算に関する演算子の優先順位を示す。
なお、同じ優先順位の演算子の場合、演算子ごとに決まっている結合順位にしたがう。
四則演算の演算子の結合順位は左から右のため、左に記述されている演算子から行われる。
(優先順位が高い) * / % + - (優先順位が低い)
演算子の優先順位とは異なる順序で演算を行う場合、括弧()
を使用する。
括弧の中に複数の演算子が使用されている場合、演算子の優先順位によって演算が行われる。
また括弧が多重に使用されている場合、内側の括弧が優先される。
2 * ((5 + 3) * 4 - (4 + 5) / 3)
例えば、上式の場合、以下の順序で演算が行われる。
複雑な式であっても、括弧と優先順位により必ず演算される順序は1つに決まる。
(1) 5 + 3 = 8 // 2 * (8 * 4 - (4 + 5) / 3) (2) 4 + 5 = 9 // 2 * (8 * 4 - 9 / 3) (3) 8 * 4 = 32 // 2 * (32 - 9 / 3) (4) 9 / 3 = 3 // 2 * (32 - 3) (5) 32 - 3 = 29 // 2 * 29 (6) 2 * 29 = 58
型変換
PHPでは、値に対するデータ型は存在しているが、必要に応じて自動的に変換が行われる場合がある。
例えば、数値と文字列、数値同士、整数と浮動小数点数等の異なるデータ型であっても、PHPがデータ型を自動的に変換して演算を行う。
以下のように、整数と浮動小数点数の演算を行う場合、まず、整数を浮動小数点に変換して演算を行う。
演算の結果も、浮動小数点数となる。
3 + 2.4 1.72 + 7
文字列の先頭に整数や浮動小数点等がある場合、文字列は先頭からの数値の部分が変換される。
'2008year' // 2008 '1.02パーセント' // 1.02
先頭の文字が数値でない場合、0として扱われる。
'こんにちは' // 0 'year2008' // 0
また、整数と文字列の演算を行う場合、文字列を数値に変換した結果が浮動小数点数である場合には、
次に整数が浮動小数点数に変換されて演算が行われる。