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

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

04.02.2021, 15:25. Показов 3194. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru