references and arrays in php

PhpGuest

Guest
references and arrays in php

<?
$vec5[0]=5;
// $link=&$vec5[0];
$vec6=$vec5;
$vec6[0]=6;

echo "test:{$vec5[0]}<br>";
?>

1) Запускаем скрипт приведенный выше
2) Смотрим результат
3) Убераем комментарии третей строки
4) Запускаем скрипт
5) Смотрим результат
6) Сравниваем пп (2) и (5)

Ответа в доках я не нашел
Может кто подскажет в чет тут фича?
 

ForJest

- свежая кровь
У меня проявилось.
1-й запуск - 5
2-й запуск - 6

PHP Version 4.3.2(win, apache 1.3 module).
ИМХО это баг.
 

PhpGuest

Guest
Originally posted by ForJest
У меня проявилось.
1-й запуск - 5
2-й запуск - 6

PHP Version 4.3.2(win).
ИМХО это баг.
у меня 4.3.4 for win32=win98
хорошо бы под унихами еще посмотреть
 

ForJest

- свежая кровь
пока починят можно юзать что нить типа
$vec6=array_chunk($vec5, count($vec5), true);
 

ONK

Пассивист PHPСluba
1. 5
2. 6

ПХП 4.3 модуль апача, w2к Z O (на всякий случай)

Страшная бага со ссылками на значение переменных.
 

PhpGuest

Guest
Originally posted by Net Dog
1.) 5
2.) 5
php 4.3.2(win xp)
Слушай огромная просьба

мне щас проект надо доделать
и решить надо как реализовать кое какие вещи
чтобы работало в дальнейшем

Выложи плз результат работы этого скрипта:

<?

$a=1;
$vec1=array(&$a);
$vec2=$vec1;
$vec2[0]=2;
echo "test1: $a<br>";

$vec3[0]=3;
$elm=&$vec3[0];
$vec4=$vec3;
$vec4[0]=4;
echo "test2: $elm<br>";
echo "test2.2: {$vec3[0]}<br>";

$vec5[0]=5;
// $link=&$vec5[0];
$vec6=$vec5;
$vec6[0]=6;

echo "test3:{$vec5[0]}<br>";

$vec7[0]=7;
$link2=&$vec7[0];
$vec8=array_chunk($vec7, count($vec7), true);
$vec8[0]=8;

echo "test4:{$vec7[0]}<br>";
?>
 

PhpGuest

Guest
Люди сорри там описака

вместо $vec22[0]=2;

$vec2[0]=2;
 

si

Administrator
var_dump дает некоторое обьяснение такому певедению, действительно похоже на bug
 

PhpGuest

Guest
Originally posted by Net Dog
а че у меня тогда все ок... странный баг ;/
Слушай а почему у тебя в одном случае дает

test1: 2
test2: 4 <- the same test
test2.2: 4 <-
test3:5
test4:7

а в другом

1.) 5
2.) 5

?
 

PhpGuest

Guest
Originally posted by Net Dog
а я хз... а в первом должен быть другой результ?
ну да вроде как должен быть

test2: 3
test2.2: 3

если первый дал
1) 5
2) 5

там же код вроде одинаковый
 

ONK

Пассивист PHPСluba
Net Dog, нас лечит ;)

На самом деле бага действительно неприятная, в сложно коде хрен отловиш.

У меня

test1: 2
test2: 4
test2.2: 4
test3:5
test4:7
 
Сверху