変数の整数としての値を取得する

# intval

(PHP 4, PHP 5, PHP 7, PHP 8)

intval — 変数の整数としての値を取得する

### 説明

function intval(mixed `$value`, int `$base` = 10): int

指定された値 `base` を基数（デフォルトは 10）とする、 `value` の int としての値を返します。 オブジェクトに intval() を使用することはできません。 その場合は `E_WARNING` レベルのエラーを発して 1 を返します。

### パラメータ

`value`

  整数に変換するスカラー値

`base`

  変換のための基数

  > 注意:

  > `base` が 0 の場合は、 `value` のフォーマットに基づいて利用する基数を決めます。

  > - 文字列の先頭が "0x" (あるいは "0X") の場合は、基数を 16 (十六進数) とします。
  > - 文字列の先頭が "0b" (あるいは "0B") の場合は、基数を 2 (二進数) とします。
  > - 文字列の先頭が "0" の場合は、基数を 8 (八進数) とします。
  > - それ以外の場合は、基数を 10 (十進数) とします。

### 戻り値

成功時は `value` の整数値、失敗時は 0。 空の配列の場合は 0、空でない配列の場合は 1 を返します。

最大値はシステムに依存します。32 ビットシステムでは、 最大の符号付き整数の範囲 -2147483648 ～ 2147483647 となります。 このため、そのようなシステムでは `intval('1000000000000')` は 2147483647 を返します。 64 ビットシステムにおける最大の符号付き整数は 9223372036854775807 となります。

文字列の場合、文字列の最左の文字に依存しますが、ほとんどの場合で 0 を返します。 整数への変換 の一般的なルールが適用されます。

> 注意: 科学的記法を使った数値形式の文字列（`e` または `E` を含む文字列）は、整数に変換される前にまず 数値としてパースされます。 文字列の数値部分が全体としてパースされるため、結果は単に先頭の 整数部分にはなりません。大きな指数の場合はさらに `PHP_INT_MAX` にオーバーフローする可能性があります:

>     <?php
>     echo intval('42.42e42'); // 9223372036854775807 on 64-bit systems
>     ?>

> このような文字列がどのように解釈されるかについての詳細は、 数値形式の文字列 を参照ください。

### 変更履歴

バージョン | 説明
--- | ---
8.0.0 | オブジェクトを指定して変換しようとした場合のエラーレベルが、 `E_NOTICE` から `E_WARNING` に変更されました。

### 例

例1 intval() の例

以下の例は 64 ビットシステムに基づきます。

    <?php
    echo intval(42), PHP_EOL;                      // 42
    echo intval(4.7), PHP_EOL;                     // 4
    echo intval('42'), PHP_EOL;                    // 42
    echo intval('+42'), PHP_EOL;                   // 42
    echo intval('-42'), PHP_EOL;                   // -42
    echo intval(042), PHP_EOL;                     // 34
    echo intval('042'), PHP_EOL;                   // 42
    echo intval(1e10), PHP_EOL;                    // 10000000000
    echo intval('1e10'), PHP_EOL;                  // 10000000000
    echo intval(0x1A), PHP_EOL;                    // 26
    echo intval('0x1A'), PHP_EOL;                  // 0
    echo intval('0x1A', 0), PHP_EOL;               // 26
    echo intval(42000000), PHP_EOL;                // 42000000
    echo intval(420000000000000000000), PHP_EOL;   // -4275113695319687168
    echo intval('420000000000000000000'), PHP_EOL; // 9223372036854775807
    echo intval(42, 8), PHP_EOL;                   // 42
    echo intval('42', 8), PHP_EOL;                 // 34
    echo intval(array()), PHP_EOL;                 // 0
    echo intval(array('foo', 'bar')), PHP_EOL;     // 1
    echo intval(false), PHP_EOL;                   // 0
    echo intval(true), PHP_EOL;                    // 1
    ?>

### 注意

> 注意:

> パラメータ `base` はパラメータ `value` が文字列でない限り意味がありません。

### 参考

- boolval() - 変数の boolean としての値を取得する
- floatval() - 変数の float 値を取得する
- strval() - 変数の文字列としての値を取得する
- settype() - 変数の型をセットする
- is_numeric() - 変数が数字または数値形式の文字列であるかを調べる
- 型の相互変換
- BCMath任意精度数学関数

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open