配列内の現在の要素を返す

# current

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

current — 配列内の現在の要素を返す

### 説明

function current(array|object `$array`): mixed

各配列は、"カレント"の要素へのポインタを有しています。 このポインタは、配列に挿入された最初の要素を指すように初期化されます。

### パラメータ

`array`

  配列。

### 戻り値

current() 関数は、 単に内部ポインタが現在指している配列要素の値を返します。 この関数は、ポインタを全く移動しません。 内部ポインタが最終要素の次を指していたり 配列が空だったりした場合、 current() は `false` を返します。

警告

この関数は論理値 `false` を返す可能性がありますが、`false` として評価される値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | この関数を object に対してコールすることは、推奨されなくなりました。 object に対して最初に get_mangled_object_vars() を使って配列に変換するか、ArrayIterator のような Iterator を実装したクラスのメソッドを使ってください。
7.4.0 | SPL クラスのインスタンスは、プロパティを持たない空のオブジェクトのように扱われるようになりました。これより前のバージョンでは、この関数と同じ名前の Iterator のメソッドをコールしていました。

### 例

例1 current() と類似関数の使用例

    <?php
    $transport = array('foot', 'bike', 'car', 'plane');
    echo $mode = current($transport), PHP_EOL; // $mode = 'foot';
    echo $mode = next($transport), PHP_EOL;    // $mode = 'bike';
    echo $mode = current($transport), PHP_EOL; // $mode = 'bike';
    echo $mode = prev($transport), PHP_EOL;    // $mode = 'foot';
    echo $mode = end($transport), PHP_EOL;     // $mode = 'plane';
    echo $mode = current($transport), PHP_EOL; // $mode = 'plane';

    $arr = array();
    var_dump(current($arr)); // bool(false)

    $arr = array(array());
    var_dump(current($arr)); // array(0) { }
    ?>

### 注意

> 注意: 配列の最終要素の次を指していた場合や、 空の配列に対して、current() を呼び出した時の結果は、 bool `false` 要素を指していた場合と区別できません。 `false` 要素を含む配列を順に処理するには、制御構文 `foreach` を参照ください。 それでも current() を使い、 値が本当に配列の要素であることを適切にチェックするには、 current() が指す要素の key() の値が、 厳密に `null` ではないことをチェックすべきです。

### 参考

- end() - 配列の内部ポインタを最終要素にセットする
- key() - 配列からキーを取り出す
- each() - 配列から現在のキーと値のペアを返して、カーソルを進める
- prev() - 内部の配列ポインタをひとつ前に戻す
- reset() - 配列の内部ポインタを先頭の要素にセットする
- next() - 配列の内部ポインタを進める
- `foreach`

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