非推奨となった each() 関数からのコードのアップグレード
PHP 7.2 では each() 関数が非推奨となり、使用時に警告が発生します。この記事では、コードを最新化し、each() の使用を回避する方法について説明します。
サンプル ケース
以前に each() が使用されていた例をいくつか示します。
reset() とlist():
$ar = $o->me; reset($ar); list($typ, $val) = each($ar);
値を直接割り当てる:
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null); $expected = each($out);
配列を誤って反復する:
for(reset($broken);$kv = each($broken);) {...}
キーを無視しますlist() 割り当て:
list(, $this->result) = each($this->cache_data);
長さチェックで不正な繰り返し:
reset($array); while( (list($id, $item) = each($array)) || $i < 30 ) { // code $i++; }
更新されたコード
1.値の割り当て
key() と current() に置き換えます:
$ar = $o->me; $typ = key($ar); $val = current($ar);
2.直接割り当て
明示的な配列キーと値に置き換えます:
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null); $expected = [key($out), current($out)];
3.正しい反復
foreach() を使用し、ループ内でキーと値のペアを割り当てます:
foreach ($broken as $k => $v) { $kv = [$k, $v]; }
4.キー無視
現在の値を直接割り当てます:
$this->result = current($this->cache_data);
5.チェックによる配列の反復
従来の for() ループに置き換えます:
reset($array); for ($i = 0; $i < 30; $i++) { $id = key($array); $item = current($array); // code next($array); }
以上がPHP の非推奨の `each()` 関数を置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。