var_dump отображает текст, но echo не

#php #echo #var-dump

#php #echo #var-дамп

Вопрос:

У меня есть массив с именем $worker
массив состоит только из строк, каждая из которых состоит из нескольких строк.

если я сделаю

 var_dump($worker); 
  

он отображает всю информацию, но делает

 for($i=0,$size=sizeof($worker);$i<$size;  $i)
{
    echo $worker[i];
}
  

В итоге у меня на странице ничего не остается.

Я очень новичок в php, поэтому извините, если это вопрос новичка: как мне получить информацию в массиве для правильной печати на экране?

Комментарии:

1. Вы, вероятно, просто забыли $ in i в $worker[i] .

2. Включите отображение предупреждений на экране в вашей среде разработки, и вы сразу заметите эти ошибки.

Ответ №1:

Вам не хватает ‘$’ для вашей переменной ‘$ i’ внутри for цикла.

Хорошей идеей будет включить отчет об ошибках при разработке на PHP: http://php.net/manual/en/function.error-reporting.php

Это обычный синтаксис для for циклов в PHP:

 for ($i=0, $c=count($worker); $i<$c; $i  ) {
    echo $worker[$i];
}
  

Комментарии:

1. Немного подробнее о том, что на самом деле происходит не так с отсутствующим $. Когда PHP видит, $worker[i] он думает, что i это пустая строка вместо переменной. Поскольку константа с именем отсутствует, i она преобразуется i в строку и пытается получить доступ $worker['i'] , поскольку массивы PHP работают как ассоциативные массивы. Поскольку $worker['i'] значение не было установлено, оно возвращает null . echo null выводит пустую строку. Кроме того, как указано в опубликованном коде @asdf, в PHP принято использовать count вместо sizeof , sizeof это просто псевдоним count .

Ответ №2:

 for($i=0,$size=count($worker);$i<$size;  $i)
{
echo $worker[$i];
}
  

Вы забыли ‘$’ int echo $worker[$i];

Комментарии:

1. @motsu: исходя из c , вы находите PHP раем.

Ответ №3:

Вы забыли знак доллара перед тем, как я вошел $worker[$i] .

-редактировать-: Удалил вторую часть, возможно, я слишком устал 🙂

Комментарии:

1. Вторая часть бессмысленна, поскольку ее возвращаемое значение не используется.