laravel — php 7.2 каждая функция () устарела

       if ( is_array( $u ) ) {
while( list( $key ) = each( $u ) ) {
$u = $u[$key];
break;
}
}

и моя версия PHP 7,2
когда я запускаю его на фреймворке Laravel, я получаю эту ошибку

The each() function is deprecated. This message will be suppressed on further calls

я обнаружил, что мне нужно поменять каждый на foreach
введите описание ссылки здесь

cound любой изменить код для меня, чтобы работать на php 7.2 спасибо

0

Решение

        while( list( $key ) = each( $u ) ) {
$u = $u[$key];
break;
}

Там нет абсолютно никакой причины, чтобы сделать цикл здесь. Вы просто получаете первое значение из массива и перезаписываете массив. Вышеприведенный цикл можно переписать в одну строку с помощью current (), который извлечет текущее значение (первое значение, если указатель массива не был изменен) из массива:

$u = current($u);
4

Другие решения

if (is_array($u)) {
foreach ($u as $k => $v) {
$u = $u[$k]; // or $v
break;
}
}

Но $u всегда будет первым значением массива, поэтому я не вижу, где он вам нужен. Вы можете получить первое значение массива, просто выполнив $u = $u[0];

4

Как говорит PHP7.2, я предлагаю использовать foreach() функционировать как замена устаревшего each(), Здесь я приведу несколько примеров, которые работают для меня в WordPress.

(OLD) while ( list( $branch, $sub_tree ) = each( $_tree ) ) {...}
(NEW) foreach ( (Array) $_tree as $branch => $sub_tree ) {...}


(OLD) while ( $activity = each( $this->init_activity ) ) {...}
(NEW) foreach ( $this->init_activity as $activity ) {...}

Пожалуйста, прочитайте:

3
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector