the - Cómo resolver esta función obsoleta cada php
the each() function is deprecated tcpdf (3)
Con PHP 7.2, each
está en desuso. La documentación dice:
Advertencia Esta función ha sido DEPRECTA a partir de PHP 7.2.0. Confiar en esta función es altamente desaconsejable.
¿Cómo puedo actualizar mi código para evitar usarlo? Aquí hay unos ejemplos:
$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(, $this->result) = each($this->cache_data);
// iterating to the end of an array or a limit > the length of the array $i = 0; reset($array); while( (list($id, $item) = each($array)) || $i < 30 ) { // code $i++; }
Para sus primeros dos casos de ejemplo, podría usar key
y current
para asignar los valores que necesita.
$ar = $o->me; // reset isn''t necessary, since you just created the array $typ = key($ar); $val = current($ar);
$out = array(''me'' => array(), ''mytype'' => 2, ''_php_class'' => null); $expected = [key($out), current($out)];
En esos casos, puede usar next
para avanzar el cursor después, pero puede que no sea necesario si el resto de su código no depende de eso.
Para el tercer caso, sugeriría usar un bucle foreach en su lugar y asignar $kv
dentro del bucle.
foreach ($broken as $k => $v) {
$kv = [$k, $v];
}
Para el cuarto caso, parece que la clave no se tiene en cuenta en la list
, por lo que puede asignar el valor actual.
$this->result = current($this->cache_data);
Al igual que en los dos primeros casos, puede ser necesario avanzar el cursor con el next
dependiendo de cómo interactúa el resto de su código con $this->cache_data
.
# 5 se puede reemplazar con un bucle for.
reset($array);
for ($i = 0; $i < 30; $i++) {
$id = key($array);
$item = current($array);
// code
next($array);
}
puede crear su propia función each()
usando key() , current() y next() . luego reemplaza tus llamadas con esa función, como esta:
<?php
function myEach(&$arr) {
$key = key($arr);
$result = ($key === null) ? false : [$key, current($arr), ''key'' => $key, ''value'' => current($arr)];
next($arr);
return $result;
}
1.
$ar = $o->me;
reset($ar);
list($typ, $val) = myEach($ar);
2.
$out = array(''me'' => array(), ''mytype'' => 2, ''_php_class'' => null);
$expected = myEach($out);
3.
for(reset($broken);$kv = myEach($broken);) {...}
reset($array);
while (list($key, $value) = each($array)) {
ACTUALIZAR
reset($array);
foreach($array as $key => $value) {