Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Как получить новую ссылку? / 9 сообщений из 9, страница 1 из 1
11.10.2019, 13:27
    #39875172
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Мне нужно получить массив произвольного размера, каждый элемент которого бы указывал на отдельную ссылку/переменную.
Код: php
1.
2.
3.
4.
5.
6.
$row = [];
foreach ($columns as $column)
{
	$v = null;
	$row[] = &$v;
}


Но если делать так, то все элементы $row содержат одну и ту же ссылку.
Если добавить unset($v), то это не помогает — тогда в $row[] остаются не ссылки, а значения.
Можно сделать так:
Код: php
1.
2.
3.
4.
5.
6.
7.
$set = [];
$row = [];
foreach ($columns as $column)
{
	$set[] = null;
	$row[] = &$set[count($set)-1];
}


А можно ли обойтись без вспомогательного массива?
...
Рейтинг: 0 / 0
11.10.2019, 15:09
    #39875263
TolikD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Зачем делать себе лишние головняки и много кода, когда можно присваивать ссылку в момент присваивания значений. С другой стороны, зачем нужен массив ссылок - для того, чтобы присваивать массив значений! То есть второй массив полюбому нужен.
...
Рейтинг: 0 / 0
11.10.2019, 15:16
    #39875272
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Потому что мне нужно в одном вызове передать заранее неизвестное количество переменных по ссылке.
И чтобы это сделать, я использую call_user_func_array, передавая список аргументов в массиве, но в этом массиве значения должны быть ссылками.
...
Рейтинг: 0 / 0
11.10.2019, 16:05
    #39875323
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Alibek B.в этом массиве значения должны быть ссылкамиНа ЧТО должны ссылаться элементы массива?
...
Рейтинг: 0 / 0
11.10.2019, 16:22
    #39875334
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
На некую безымянную область памяти, которая будет зачищена после того, как на нее не останется ссылок. А пока ссылки есть — к ним можно обратиться через массив по индексу.
...
Рейтинг: 0 / 0
11.10.2019, 16:24
    #39875336
TolikD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Код: php
1.
2.
3.
4.
function newref(&$var) { }
$row = [];
foreach ($columns as $column)
	newref($row[]);


Должно работать )) но нужно делать по-другому
...
Рейтинг: 0 / 0
11.10.2019, 16:35
    #39875353
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Ну да, что-то вроде этого, только без лишних сущностей в виде вспомогательного массива или функции.
Я думал есть способ явно указать синтаксисом, что я хочу создать новую ссылку.
...
Рейтинг: 0 / 0
11.10.2019, 16:44
    #39875365
TolikD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Это задокументированный метод )
...
Рейтинг: 0 / 0
11.10.2019, 17:12
    #39875392
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: Как получить новую ссылку?
Alibek B.На некую безымянную область памяти, которая будет зачищена после того, как на нее не останется ссылок. А пока ссылки есть — к ним можно обратиться через массив по индексу.Вы только что кратко описали, как работают, в частности, элементы массивов. Ну и переменные так же.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Как получить новую ссылку? / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]