комплексные переменные

demmi

Guest
комплексные переменные

итак есть код

$arr=array("key1"=>"$id$s",
"key2"=>"$id$s");
extract($arr);

$key3="$id$s";
$id='hello ';
$s='world';

echo $key1; => ничего
echo $key2; => ничего
echo $key3; => hello world

Ну и в чем тут загвоздка?
 

AnToXa

prodigy-одаренный ребенок
в том, что переменные $id и $s определены после $arr и в массив были занесены пустые значения
 

demmi

Guest
хорошо и все таки хочется заранее иметь массив с ссылками на переменные а значения передавать уже потом, как быть?
 

demmi

Guest
чесно говоря было прочитано куча инфы по этому вопросу, а ответа нет, не подскажешь КАК правильно обьявлять такого рода ссылки?
 

AnToXa

prodigy-одаренный ребенок
не получится сделать прям как у тебя.
для начала я пошел и почитал мануал (как видишь, не только новички читают ман :) )
http://www.php.net/manual/en/function.extract.php
и увидел, что Note: EXTR_REFS was introduced in version 4.3.0.
т.е. extract без такого флага всегда будет выдергивать _копии_ ключей массива.

тебе стОит подумать над изменением структуры данных

вот так работает
PHP:
<?php

$id = '';
$s = '';

$arr=array('key1'=>&$id, 'key2'=>&$s);

$id='hello';
$s='world';

echo $arr['key1'] . '<br>';
?>
 
Сверху