MU
Guest
Область видимости и XML-функции
В данном примере ф-ия Main должна возвращать массив, который заполняет внутренняя ее функция Sub. И хотя в ф-ции Sub() массив я объявил как глобальный, после ее отработки, в нем ничего не будет содержаться. Также ничего не произойдет, если изменять массив через $GLOBALS.
Если же массив передавать по ссылке в ф-ию, как Sub( &$Arr ), то конечно все будет работать, но есть ограничение на параметры этой ф-ии, т.е. так сделать уже нельзя. В данном случае Sub() не должна иметь никаких параметров.
Примером таких "жестких" функций могут быть функции:
StartTag(...) и EndTag(...)
в
int xml_set_element_handler ("StartTag", "EndTag");
где они должны иметь определенное кол-во параметров
В данном примере ф-ия 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;
printf("Sub: Размер = %d<BR>", count($Arr));// = 5
}
Sub();
printf("Main: Размер = %d<BR>", count($Arr));// = 0 хАчу 5!
return $Arr;
}// end Main()
$A = Main();
printf("GLOBAL: Размер = %d<BR>", count($A));// = 0 и тут хочу этого не меньше