Имеется такой код:
index.php -----------------------------------------------------------
<?
include('header.php');
if($_GET["page"] == NULL) $PAGE=0;
else $PAGE = $_GET["page"];
print_header($PAGE);
?>
---------------------------------------------------------------------
header.php ----------------------------------------------------------
<?
$name_pages = array ("One", "Two", "Three", "Four");
function print_header($PAGE){
echo $PAGE;
echo $name_pages[$PAGE];
}
?>
----------------------------------------------------------------------
Если сделать такой вызов:
http://127.0.0.1/webdev/index.php?page=2
То всё что я получаю, это вывод переменной $PAGE но не элемента массива
с индексом равным $PAGE, в данном случае это 2.
Вывод: --------------------------------------------------------------
2
---------------------------------------------------------------------
При этом если перенести массив внутрь функции print_header(),
то элемент массива выводится.
Собственно вопрос такой, почему не видно содержимое массива вне
этой функции?!
Заранее спасибо!!!
Потому, что в похапе, если не ошибаюсь, только суперглобалы _GET, _POST и, кажется, _FILES попадают в область видимости внутри функции. Так устроен мир, ничего не поделаешь. Единственный выход - отказаться от похапе.
Ну во первых не движок, а во вторых хочу написать тулзу для мониторинга серваков (в основном для себя, но может кому то же пригодится), но похоже буду писать его на перле, поизучаю его, а заодно сравню с пыхом
писал я как-то фейс к базе данных, на перле, недели две парился, сначала на cgi сделал, тормозит (а мне надо было с компакта еще запускать, WAMP), потом переписал на модперл, стало быстрее, но памяти жрет..., потом не пыхе переписал, за пару дней, работало чуть быстрее модперла и по памяти меньше, не подумайте что за пых агитирую, перл все равно мне больше, наверно надо было на Ruby все делать :) хотя еще тот тормоз, так что
идеального языка нету, ну может Lisp только :)