php intvalでint型にキャストする

  • 作成日 2021.11.01
  • php
php intvalでint型にキャストする

phpで、intvalを使用して、int型にキャストするサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

intval使い方

intvalを使用すれば、int型にキャストすることが可能です。

intval(変数);

以下は、int型にキャストしたサンプルコードとなります。

<?php

$str = "10.11";

$result = intval($str);

var_dump($result); // int(10)

後方に文字列が含まれていても結果は同じです。

<?php

$str = "10.11mebee";

$result = intval($str);

var_dump($result); // int(10)

文字列の「011」は、11に変換されますが、数値の「011」は8進数と認識されます。

<?php

$str = "011";

$result = intval($str);

var_dump($result); // int(11)

$str = 011;

$result = intval($str);

var_dump($result); // int(9)

$str = 020;

$result = intval($str);

var_dump($result); // int(16)

第二引数には、基数を指定すれば設定した基数に変換されます。

<?php

$result = intval("0A");

var_dump($result); // int(0)

$result = intval("0A",16);

var_dump($result); // int(10)

キャスト演算子(int)でも変換は可能です。

<?php

$str = "10.1";

$result = (int)$str;

var_dump($result); // int(10)

また、floorと同じで、小数点以下を切り捨てることが可能となります。
※パフォーマンスは(int)の方が遥かにいいです。

<?php

$num = 11.11;

echo (int)$num; // 11

echo floor($num); // 11

【参考】 同じコードを1000万回実行した結果

測定結果 : (int)
process time: 0.61790 ミリ秒

測定結果 : floor
process time: 2.40074 ミリ秒