|
|
|
| Какое-то странное поведение описателя global у меня..
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=17918 - тут тема к решению так и не пришла..
Вот фрагмент кода
$phrases=array();
$phrases=preparePhrases(array(1,2,3,4,5,6,7,9));
echo $phrases[9];
.....
// в подключаемом по require_once файле
function preparePhrases($ids)
{
$answer=array();
.......................
return $answer;
}
// снова в основном файле
function FormMessages($msg, $backurl, $status=1)
{
global $phrases;
echo "FormMessages= ".$phrases[9];
|
Курсивом выделена более поздняя (ничем не помогшая) вставка.
Смысл - внешняя функция preparePhrases возвращает массив.
После этой функции контрольная точка выводит значение правильно
А вот во второй функции (FormMessages) эта переменная пуста.. Несмотря на объявление global..
В чем ошибка, где не понимаю?? | |
|
|
|
|
|
|
|
для: LouD
(27.08.2007 в 22:05)
| | array(1,2,3,4,5,6,7,9) определяет элементы с 0-го по 8-й. 9-й элемент окажется неопределен.
global воздействует на имя.
Что под ним лежит - число , строка, массив, объект, ресурс - несущественно. | |
|
|
|
|
|
|
|
для: Trianon
(27.08.2007 в 22:07)
| | Многоуважаемый Trianon, твой ответ натолкнул меня на мысль просто проверить более тщательно переменные..
В функцию попадает Array - зря я грешил на global :)
А более тщательная проверка этого массива на распечатку пар ключ=>значение показало мне дырку: я массив в еще одной подключаемой функции переопределил ниже :(((
Так что спасибо за правильно данное направление мысли..
Ну а за глупый вопрос - глобально сорри :) | |
|
|
|