LINUX.ORG.RU

PHP и массив


0

0

Имеется такой код:

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(),
то элемент массива выводится.

Собственно вопрос такой, почему не видно содержимое массива вне
этой функции?!

Заранее спасибо!!!
★★★★★

Re: PHP и массив

пробовал включать в php.ini глобальные переменные но не помогло...:(

cyclon ★★★★★ ()

Re: PHP и массив

Какая версия php?

Selecter ★★★★ ()
Ответ на: Re: PHP и массив от Selecter

Re: PHP и массив

Хотя и так ясно:
Ты забыл указать в теле функции: global $name_pages;

Глобальные переменные - очень плохой тон. Отвыкай.

Selecter ★★★★ ()

Re: PHP и массив

а кто будет колдунское слово 'global' писать ?
тут нам не C/c++, тут совсем другая морква

MKuznetsov ★★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

Включи ещё notice, чтобы в следующий раз выскочила заметка о обрашении к необъявленной переменной.

Selecter ★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

>пробовал включать в php.ini глобальные переменные но не помогло...:(

Хотел сделать дырявый пхп-код еще более дырявым?

anonymous ()
Ответ на: Re: PHP и массив от anonymous

Re: PHP и массив

global не помог :(

версия php -- dev-lang/php-5.1.6-r8

cyclon ★★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

Делал так?

header.php ---------------------------------------------------------- <? $name_pages = array ("One", "Two", "Three", "Four");

function print_header($PAGE){ global $name_pages; echo $PAGE; echo $name_pages[$PAGE];

}

?> ----------------------------------------------------------------------

anonymous ()
Ответ на: Re: PHP и массив от anonymous

Re: PHP и массив

Делал так?

header.php ----------------------------------------------------------
<?
$name_pages = array ("One", "Two", "Three", "Four");

function print_header($PAGE){
global $name_pages;
echo $PAGE;
echo $name_pages[$PAGE];

}

?> ----------------------------------------------------------------------

anonymous ()
Ответ на: Re: PHP и массив от anonymous

Re: PHP и массив

TO anonymous (*) (14.11.2006 9:51:46)

огромный сенкс!!!!

а может кто обьяснить почему массив не попадает в область видимости внутри функции?!

cyclon ★★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

Потому, что в похапе, если не ошибаюсь, только суперглобалы _GET, _POST и, кажется, _FILES попадают в область видимости внутри функции. Так устроен мир, ничего не поделаешь. Единственный выход - отказаться от похапе.

Miguel ★★★★★ ()

Re: PHP и массив

Python тоже этим горазд, что иногда очень плохо. Всякие извраты в многопоточной проге надо делать=(

Motiv_studenta ★★ ()
Ответ на: Re: PHP и массив от Motiv_studenta

Re: PHP и массив

а не легче было бы передавать массив функций?

djung ★★ ()
Ответ на: Re: PHP и массив от djung

Re: PHP и массив

Мне нужен массив который инициализируется в другой функции, потом с этим массивом работает другая функция и.т.д. и только потом моя...

cyclon ★★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

P.S. Глобальные переменные в таких случаях юзать - зло. Кроме каких-нить диких исключений.

AngryElf ★★★★★ ()
Ответ на: Re: PHP и массив от AngryElf

Re: PHP и массив

ну хотя бы объявить его (масив) в начале программы, а не в ф-ции, а в ф-циях писать global $names, где надо.

судя по коду, похоже изобретается какой-то велосипедистый движок, хотя часто это полезно и правильно :)

ELF ★★ ()
Ответ на: Re: PHP и массив от ELF

Re: PHP и массив

Ну во первых не движок, а во вторых хочу написать тулзу для мониторинга серваков (в основном для себя, но может кому то же пригодится), но похоже буду писать его на перле, поизучаю его, а заодно сравню с пыхом

cyclon ★★★★★ ()
Ответ на: Re: PHP и массив от cyclon

Re: PHP и массив

писал я как-то фейс к базе данных, на перле, недели две парился, сначала на cgi сделал, тормозит (а мне надо было с компакта еще запускать, WAMP), потом переписал на модперл, стало быстрее, но памяти жрет..., потом не пыхе переписал, за пару дней, работало чуть быстрее модперла и по памяти меньше, не подумайте что за пых агитирую, перл все равно мне больше, наверно надо было на Ruby все делать :) хотя еще тот тормоз, так что идеального языка нету, ну может Lisp только :)

ELF ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.