-2

Написал функцию, которая распечатывает многомерный массив:

function printArray(array $arr){
    foreach($arr as $key=>$var){
        if(is_array($var)){
             foreach($var as $k=>$v){
                echo "$k  $v".PHP_EOL;
             }
        }
        echo "$key => $var".PHP_EOL;
    }
}

printArray([0,[1,1.1,1.2,1.3],2,3,4]);

Выводит такой результат:

0 => 0
0  1
1  1.1
2  1.2
3  1.3
PHP Warning:  Array to string conversion in /home/alex/BranderPHPcourse/lesson6/task3.php on line 14
1 => Array
2 => 2
3 => 3
4 => 4

Подскажите пожалуйста почему возникает такая ошибка?

1 Answers1

0

В коде упущен блок else после проверки переменной $var на массив. Из-за этого, даже в случае если $var будет массивом, код echo "$key => $var".PHP_EOL; будет выполняться. Использование переменной типа "массив" как строки даёт такое предупреждение.

7-zete-7
  • 647