параметры $_GET удаляются интересным образом

rudik

Developer
параметры $_GET удаляются интересным образом

Это меня глючит или PHP?

PHP:
<?
echo '<pre>';
print_R($_GET);
$x = $_GET;
print_R($x);
unset($x['id']);
print_R($_GET);
?>
Передаем в скрипт параметр id методом GET, массиву $x назначаем массив $_GET, удаляем элемент из массива $x.

А теперь глюк - элемент удаляется не только с массива $x, но и с массива $_GET!!!

Я конечно решил проблему, присваиванием $x = array_merge(array(), $_GET), но все же интересно, это я чего-то недочитал в доке или это глюк?
 

rudik

Developer
PHP 4.3.4
Apache/1.3.29 (Unix) mod_accounting/0.5 PHP/4.3.4 rus/PL30.19
OS: Fedora Core (как Linux RH)

-~{}~ 05.04.04 09:53:

Скорее всего баг в PHP
 

tony2001

TeaM PHPClub
код:
PHP:
print_r($_GET);
$x = $_GET; 
unset($x['id']); 
print_r($x); 
print_r($_GET);
вывод:
Код:
Array ( [test] => 123 [id] => 5 )
Array ( [test] => 123 ) 
Array ( [test] => 123 [id] => 5 )
Apache 1.3.29
PHP 5.0.0RC2-dev, PHP 4.3.6RC2-dev, 4.3.4, 4.3.3

таких багов не бывает.
 

rudik

Developer
tony2001, я же не придумываю. Баги платформо-зависимые штуки, поэтому под SuSe он может быть, а под Red Het, может его небыть. У меня Fedora Core.

PHP:
Array
(
    [test] => 123
    [id] => 5
)
Array
(
    [test] => 123
    [id] => 5
)
Array
(
    [test] => 123
)
-~{}~ 05.04.04 10:25:

Причем с массива $x, оно не удаляется :)
Ладно это мелкий и некритичный баг, вот если в следующей версии php будет, то будем делать report. Так как моя версия все равно уже устарела, ее пора переустанавливать.

-~{}~ 05.04.04 10:28:

Если все равно не веришь могу открыть FTP для тебя
 

tony2001

TeaM PHPClub
>tony2001, я же не придумываю.
я ведь тоже не придумываю.
понимаешь, если у тебя что-то неправильно, а у всех остальных - все нормально, то проблема скорее всего у тебя, а не у всех остальных.
логично?
 

si

Administrator
tony2001
очень похоже на это
[09:39] (demi|urg): народ, сделайте кто у себя:
[09:39] (demi|urg): $arr = array('a'=>1 , 'b'=>2 , 'c'=>3);
[09:39] (demi|urg): $Vars = $arr;
[09:39] (demi|urg): print_r($arr);
[09:39] (demi|urg): unset($Vars['a']);
[09:39] (demi|urg): print_r($arr);
[09:39] (demi|urg): 2 сервера примерно одинаковый выдают разное
[09:43] (demi|urg): интересно, сдесь http://xxxx/ дает Array ( [a] => 1 => 2 [c] => 3 ) Array ( => 2 [c] => 3 )
 

rudik

Developer
Zend Optimizer v2.5.0

Выключил, теперь все правильно работает.
 

confguru

ExAdmin
Команда форума
PHP Version 4.3.5RC2 без ZO
нормально работает..

Zend Optimizer v2.1.0 + PHP 4.3.4 нормально работает..
 

rudik

Developer
Результат положительный, в версии Zend Optimizer 2.5.1 такого бага - нет. Так что обновляйтесь.
 
Сверху