Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
57 / 48 / 5
Регистрация: 19.11.2017
Сообщений: 857

Возврат по ссылке

04.02.2021, 15:25. Показов 3205. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Куда array_push записывает данные и как обратиться к массиву ?

PHP
1
2
3
4
5
6
7
<?php
function &collector() {
  $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>
Спасибо)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2021, 15:25
Ответы с готовыми решениями:

Возврат по ссылке
Приветствую всех! Есть пример из книги Р. Лафоре &quot;Объекто-ориентированное программирование в C++&quot;: #include &lt;iostream&gt; ...

Возврат по ссылке
Вычитал давно еще, что если возвращать статический обьект из метода и присвоить его констатной ссылке то он продолжить жить пока видима эта...

Наследование, возврат по ссылке..
Есть такое :wall:Я не могу понять, как реализовать :help: :wall:Подсказывать, как это можно сделать. :help: Вот мой #include...

25
57 / 48 / 5
Регистрация: 19.11.2017
Сообщений: 857
05.02.2021, 12:37  [ТС]
Студворк — интернет-сервис помощи студентам
Jewbacabra, Спасибо, все стало понятно!

Я так понимаю, что тут ещё играет роль то, что $value имеет область видимости public?
Нет.
Я имел в виду, что только в этом случае(когда область видимости переменной public) мы можем обратиться к $value, то есть обратиться к области памяти $value.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.02.2021, 12:47
Цитата Сообщение от mikello Посмотреть сообщение
Я имел в виду, что только в этом случае(когда область видимости переменной public) мы можем обратиться к $value, то есть обратиться к области памяти $value.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
class foo {
    private $value = 42;
 
    public function &getValue() {
        return $this->value;
    }
 
    public function setValue($val) {
        $this->value = $val;
    }
}
 
$obj = new foo;
$myValue = &$obj->getValue();
$myValue = 2;
 
var_dump($obj->getValue()); // 2
 
$obj->setValue(10);
 
var_dump($myValue); // 10
1
57 / 48 / 5
Регистрация: 19.11.2017
Сообщений: 857
05.02.2021, 12:52  [ТС]
Jewbacabra, хороший пример, то есть я так понимаю, можно посредством ссылок влиять на изменение переменных с областью видимости private в классе?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.02.2021, 12:55
Цитата Сообщение от mikello Посмотреть сообщение
то есть я так понимаю, можно посредством ссылок влиять на изменение переменных с областью видимости private в классе?
Можно, но не нужно
1
57 / 48 / 5
Регистрация: 19.11.2017
Сообщений: 857
05.02.2021, 12:59  [ТС]
Jewbacabra, ок. А вот насчет самого первого примера:

PHP
1
2
3
4
5
6
7
<?php
function &collector() {
  $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>
Этот пример демонстрирует (в данном виде без static $collection), что мы теряем доступ к массиву, т.е. он находится в памяти, но мы не знаем и не можем к нему обратиться после вызова array_push. Это так? То есть такой код приводит к утечке памяти.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.02.2021, 13:08
Цитата Сообщение от mikello Посмотреть сообщение
Это так? То есть такой код приводит к утечке памяти.
Счетчик ссылок станет равен 0, так что никакой утечки не будет. Счетчик ссылок мог бы быть не нулевым, например в такой ситуации
PHP
1
2
3
$collection = array();
$collection[] = &$collection;
return $collection;
Но и тут сборщик мусора должен обнаружить эту циклическую ссылку и удалить.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2021, 13:08

Возврат по константой ссылке
Всем добрый день! И снова я с глупыми вопросами, простите заранее :-const int&amp; mysum(int&amp; num, int incr = 0) { num += incr;...

Возврат значения по ссылке
Долго гуглил, но что-то так и не понял. Почему слева от знака = может использоваться только функция, возвращающая ссылку?

Возврат значений по ссылке и по адресу
Добрый день. Прочитал, что большие структуры и классы рекомендуется возвращать из функции по ссылке и не рекомендуется по адресу....

Как происходит возврат значения по ссылке?
Добрый вечер, распишите пожалуйста детально про то, как происходит возврат значения по ссылке. Можно вот на этом примере: alpha&amp;...

Возврат значения функции по ссылке возможен?
Добрый день! Хочу уточнить некоторый принцип работы с функциями, возвращающими значения. Есть ли возможность в C# возвращать значения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru