za4me
@za4me
Человек

Где ошибка в данном php сценарии?

Добрый день, учу php по книге, в ней был приведен такой сценарий:

<?php 
	// Эти строки форматируют выводимую информацию в виде
	// HTML комментариев и последовательно вызывают функцию dump_array()
	echo "\n <!-- начало дампа переменных --> \n\n";

	echo "\n <!-- начало переменных GET --> \n\n";
	echo '<!--'.dump_array($HTTP_GET_VARS)." -->\n";

	echo "\n <!-- начало переменных POST--> \n\n";
	echo '<!--'.dump_array($HTTP_POST_VARS)." -->\n";

	echo "\n <!-- начало переменных СЕАНСА --> \n\n";
	echo '<!--'.dump_array($HTTP_SESSION_VARS)." -->\n";

	echo "\n <!-- начало переменных COOKIE-набора --> \n\n";
	echo '<!--'.dump_array($HTTP_COOKIE_VARS)." -->\n";

	echo "\n <!-- Конец дампа переменных --> \n";

	// Функция dump_array() получает один массив в качестве параметра.
	// Она проходит в цикле по этому массиву  и создает единственную
	// строку, представляющую собой массив как набор.

	function dump_array($array) {
		if (is_array($array)) {
			$size = count($array);
			$string = "";
			if ($size) {
				$count = 0;
				$string .= "{ ";

				// Добавить ключи и значения всех элементов к стоке
				foreach ($array as $key => $value) {
					$string .= $var." = ".$value;
					if ($count++ < ($size-1)) {
						$string .= ", ";
					}
				}
				$string .= "} ";
			}
			return $string;
		} else {
			// Если это не массив просто вернуть его
			return $array;
		}
	}
 ?>


Либо за целый день глаз замылился, либо я чего-то не пойму. Но сценарий не работает, пробовал копировать с исходников книги, тоже не работает.
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
Ivanq
@Ivanq
Знаю php, js, html, css
<?php 
  // Эти строки форматируют выводимую информацию в виде
  // HTML комментариев и последовательно вызывают функцию dump_array()
  echo "\n <!-- начало дампа переменных --> \n\n";

  echo "\n <!-- начало переменных GET --> \n\n";
  echo "<!--".dump_array($_GET)." -->\n";

  echo "\n <!-- начало переменных POST--> \n\n";
  echo "<!--".dump_array($_POST)." -->\n";

  echo "\n <!-- начало переменных СЕАНСА --> \n\n";
  echo "<!--".dump_array($_SESSION)." -->\n";

  echo "\n <!-- начало переменных COOKIE-набора --> \n\n";
  echo "<!--".dump_array($_COOKIE)." -->\n";

  echo "\n <!-- Конец дампа переменных --> \n";

  // Функция dump_array() получает один массив в качестве параметра.
  // Она проходит в цикле по этому массиву  и создает единственную
  // строку, представляющую собой массив как набор.

  function dump_array($array) {
    if (is_array($array)) {
      $size = count($array);
      $string = "";
      if ($size) {
        $count = 0;
        $string .= "{ ";

        // Добавить ключи и значения всех элементов к стоке
        foreach ($array as $key => $value) {
          $string .= $key." = ".$value;
          if ($count++ < ($size-1)) {
            $string .= ", ";
          }
        }
        $string .= "} ";
      }
      return $string;
    } else {
      // Если это не массив просто вернуть его
      return $array;
    }
  }
 ?>

ошибка в коде + $_POST, $_GET, $_REQUEST, $_COOKIE и т д
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
BuriK666
@BuriK666
Компьютерный псих
у Вас книга очень старая... HTTP_GET_VARS, HTTP_POST_VARS, HTTP_SESSION_VARS, HTTP_COOKIE_VARS - deprecated
Ответ написан
Комментировать
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Используйте $_POST, $_GET, $_SESSION, $_COOKIEвместо $HTTP_GET_VARS и т.д.
Ответ написан
Комментировать
za4me
@za4me Автор вопроса
Человек
Вообщем принял к сведению все комментарии насчет того что моя книга устарела, но неработающий код не давал покоя и было очень интересно почему же не работает и как его починить.

С утра на свежую голову еще раз перебрал его логику, и понял ошибку. В цикле выводится $var, а должна быть $key.

Всем спасибо за помощь.

p.s. Только заметил что Ivanq поправил данную ошибку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы