ссылка на переменную, возвращение из функции

vg2k

Новичок
ссылка на переменную, возвращение из функции

Хочу получить в результате работы функции переменную из области видимости функции (в данном примере это вообще глобальная $a). То есть не дублировать $a, а работать с куском памяти оригинала.
В результате успешного срабатывания моих тестов должно было бы выводиться "outer link work", а выводится "inner link work". И так и сяк кручуЮ не помогает.

PHP:
// первая попытка
function get_a()
{
	global $a;
	
	$link =& $a;
	$link = 'inner link work';
	return $link;
}
$a = '123';



echo $a.'<br>';
$link_to_a =& get_a();
$link_to_a = 'outer link work';
echo $a.'<br>';


echo '<hr>';

// вторая попытка
function get_a2(&$lnk)
{
	global $a;
	
	$link =& $a;
	$link = 'inner link work';
	$lnk =& $link;
	return null;
}
$a = '123';



echo $a.'<br>';
get_a2($link_to_a);
$link_to_a = 'outer link work';
echo $a.'<br>';
 

Гравицапа

elbirret elcno

vg2k

Новичок
Кстати, сразу попытаюсь описать для чего мне это необходимо. Возможно есть более удобное решение.

Имеется в наличие множество классов (новости, статьи, товары и т.д.) взаимодействующих в родителем DAO (доступ к данным БД). Некоторые классы часто вынуждены обращаться к БД за рабочей информацией, которую вполне возможно хранить в памяти во время работы скрипта (во избежания множество неоправданных sql-запросов). Эти "частые" данные: структура, флаги (инициализации,....) и тд. Хотелось вынести красиво этот общий функционал в методы родителя, откуда зная текущий класс и категорию данных легко и быстро иметь доступ к необходимой инфе.

И например, нужно нечто сделать со структурой класса MyClass...
$struc = get_from_my_storage('MyClass', 'structure');
и далее работать со $struc.
 

Jumbastic

Новичок
думаю тебе поможет вот это: http://phpclub.ru/faq/wakka.php?wakka=DesignPatterns/Singleton
 

vg2k

Новичок
Гравицапа, во, то что нада.

Jumbastic, а касательно синглтонов... у меня это все завернуто в класс, однако использовую в этом случае просто статик функции как аксесоры, и статик переменную для хранения инфы. Мне кажеться вызывать инстанцию синглтона в моем случае нет необходимости.


ЗЫ. Спасибо за то, что отклинулись )))
 
Сверху