Quantcast
Channel: PHP8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 521

PHP8 で Call to undefined function each() になる場合の対処法

$
0
0

PHP8 で each関数が削除されたため、 Call to undefined function each()というエラーになります。

例えば、以下のような処理がある場合は、 current()next()を使用した処理に書き換えます。

// PHP7 までは each() 関数が使えるwhile(list($k,$v)=each($array)){echo$k;echo$v;}
// PHP8 以降は each() 関数は使えないwhile($current=current($array)){$k=key($array);$v=$current;echo$k;echo$v;next($array);}

Composer のパッケージで each() が使われている場合

Composer のパッケージで each()関数が使われている場合は、直接書き換えるわけにはいきませんので、解決するためのパッケージを作成しました。

以下のコマンドで PHP8 でも each()関数を使えるようになります。

composer require nanasess/php8-compat

本来は、こういった互換プログラムを使用するのはあまりよろしくないので、
1. 対応されるまで待つ
2. each()関数を使わないよう修正し、 Pull Request する
などの対応をするのが良いと思います。


Viewing all articles
Browse latest Browse all 521

Trending Articles