PHPのint(整数)型

PHPは、動的型付け言語であるためActionScript3.0のように変数を宣言する際に型を指定する必要はありませんが、内部的には明確に区別されています。PHPには、uint(符号無し整数)がないため、PHPで整数を扱う際はint型を使用します。

まず、簡単な変数への代入の例から見てみます。先頭に0を付けた場合は8進数として処理され、0xを付けた場合は16進数として処理されます。

PHP

<?php
$int_00 = 7;
var_dump($int_00); // 出力:int(7)

$int_01 = -3;
var_dump($int_01); // 出力:int(-3)

$int_02 = 010;
var_dump($int_02); // 出力:int(8)

$int_03 = 0x80;
var_dump($int_03); // 出力:int(128)
?>

PHPのint型の最大値は、PHP_INT_MAX定数で得ることができますが、この値はプラットフォームによって異なります。また最大値を越えた整数は、自動的にfloat(浮動小数点)型にキャストされます。

PHP

<?php
$int_04 = PHP_INT_MAX;
var_dump($int_04); // 出力:int(9223372036854775807)

$int_05 = PHP_INT_MAX + 1;
var_dump($int_05); // 出力:float(9.2233720368548E+18)
?>

int型へ明示的にキャストする場合は、(int)またはintval()を使用します。まず、floatからintへのキャストを見てみます。浮動小数点型を整数型に型変換すると小数点以下が切り捨てられます。

PHP

<?php
$int_06 = intval(2.5);
var_dump($int_06); // 出力:int(2)

$int_07 = (int)-2.5;
var_dump($int_07); // 出力:int(-2)
?>

次に文字列型から整数型へのキャストを見てみます。気を付けたいのは、PHPでは文字列の先頭に数値を表す文字が続いた場合、そこまでを数値として解釈する点です。例として、’10個’という文字列をint型へキャストすると10という整数値となります。一方、先頭が数値を表す文字でない場合は、0となります。

PHP

<?php
$int_08 = intval('5');
var_dump($int_08); // 出力:int(5)

$int_09 = (int)'10個';
var_dump($int_09); // 出力:int(10)

$int_10 = intval('G20');
var_dump($int_10); // 出力:int(0)
?>

論理型から整数型への型変換した場合は、それぞれTRUEは1にFALSEは0にキャストされます。

PHP

<?php
$int_11 = (int)TRUE;
var_dump($int_11); // 出力:int(1)

$int_12 = intval(FALSE);
var_dump($int_12); // 出力:int(0)
?>
  • このエントリーをはてなブックマークに追加

Advertisement