Странное поведение ПХП, возможно баг?

ONK

Пассивист PHPСluba
Странное поведение ПХП, возможно баг?

Код.
PHP:
<?php

function foo(){
	global $foo,$bar;
	$local = 1;
	$foo = $local;
	$bar = &$local;
}

function bar(){
	global $foo,$bar;
	echo $foo,'<br>',$bar;
}

foo();
bar();
?>
Ожидаемый результат:
1
1
Получаемый результат:
1

протестировано на ПХП 4.3.10 и ПХП 5.0.4

Есть какие либо комментарии?
 

Demiurg

Guest
а чего ты ожидал, если у тебя $bar ссылка на несуществующий элемент ?

-~{}~ 10.06.05 11:35:

вернее ссылка на несуществующую переменную.
 

ONK

Пассивист PHPСluba
Demiurg, На сколько я помню, значение переменной уничтожается только после того, как счётчик ссылок становится равен 0. Но если даже это не относится к автоматическим переменным, то почему не работает и это:

....
static $local = 1;
....
 

Demiurg

Guest
<?

$foo = 100;
$bar = 100;

function foo(){
global $foo,$bar;
$local = 1;
$foo = $local;
$bar = &$local;
var_dump($bar);
}

function bar(){
global $foo,$bar;
var_dump($foo);
var_dump($bar);
}

foo();
bar();
?>
вот еще интересно на 4.3.11 получается
int(1)
int(1)
int(100)
 

ONK

Пассивист PHPСluba
Да, очень интересное поведение. (ПХП 5.0.4 аналогично)

Похоже что это всё таки бага.
 
Сверху