Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

PHP(XML) - Область видимости

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
MU



Зарегистрирован: 03.04.2005
Сообщения: 1

СообщениеДобавлено: Вс Апр 03 2005 11:56    Заголовок сообщения: PHP(XML) - Область видимости Ответить с цитатой

В данном примере ф-ия Main должна возвращать массив, который заполняет внутренняя ее функция Sub. И хотя в ф-ции Sub() массив я объявил как глобальный, после ее отработки, в нем ничего не будет содержаться. Также ничего не произойдет, если изменять массив через $GLOBALS.
Если же массив передавать по ссылке в ф-ию, как Sub( &$Arr ), то конечно все будет работать, но есть ограничение на параметры этой ф-ии, т.е. так сделать уже нельзя. В данном случае Sub() не должна иметь никаких параметров.

Такие ограничения могут быть в функциях StartTag(...) и EndTag(...)
в
int xml_set_element_handler ("StartTag", "EndTag");
где они должны иметь определенное кол-во параметров



<?php
function Main()
{
$Arr = array();
function Sub()
{
global $Arr;
for ( $i = 0; $i < 5; $i++ )
$Arr[$i] = $i;
}

Sub();
return $Arr;
}// end Main()

$A = Main();
printf("GLOBAL: Размер = %d<BR>", count($A));// = 0
?>
Confused
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Antimof



Зарегистрирован: 04.08.2004
Сообщения: 41
Откуда: Тольятти

СообщениеДобавлено: Вт Апр 05 2005 08:26    Заголовок сообщения: Ответить с цитатой

вот так сработает

Код:
<?php
$arr = array();

function main(){
   global $arr;
   sub();
   return $arr;
}

function sub(){
   global $arr;
   for ($i = 0; $i < 5; $i++){
      $arr[$i] = $i;
   }
}

$a = main();
printf("GLOBAL: Размер = %d<BR>", count($a));

?>


P.S. Пожалуйста пиши код аккуратно независимо от размера и важности программы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...