|
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
|
|||||||||||
Аналог unset в ООП?06.01.2023, 10:49. Показов 3900. Ответов 56
Метки нет (Все метки)
Прочитав доки про деструктор я понял, что деструктор это аналог unset().
Затем, я решил свой код ООП переписать на процедурный стиль. Правильно ли я переписал свой код? И верно ли, что деструктор это аналог unset() ? Решил этот код ООП:
Переписать на процедурный, знаю, что криво написал:
0
|
|||||||||||
| 06.01.2023, 10:49 | |
|
Ответы с готовыми решениями:
56
unset unset
|
|
Невнимательный
|
||||||||||||||||||||||
| 08.01.2023, 12:17 | ||||||||||||||||||||||
![]() например
в порядке обратном созданию объектов Добавлено через 4 минуты unset() это да ))
0
|
||||||||||||||||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 08.01.2023, 12:18 | |
|
1
|
|
|
Невнимательный
|
||
| 08.01.2023, 12:24 | ||
|
// ... хотя там и насчёт разных SAPI есть моменты ... так-что да надёжнее не полагаться на такое ... если хочется не сильно
0
|
||
|
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
|
|||
| 08.01.2023, 13:04 [ТС] | |||
|
Jewbacabra
Деструктор вызывается автоматически после уничтожения класса и ничего не делает, верно? Но мы можем вызвать деструктор явно и написать туда инструкции. Добавлено через 4 минуты estic Да я запутался, одни мне говорят, что деструктор вызывается автоматически(неявно) и очищает память. Другие говорят, что деструктор вызывается так же автоматически(неявно) и ничего не делает. Я запутался. Если мы не вызываем деструктор явно, то он вызывается сам и ничего не делает, то какая в этом логика?
0
|
|||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 08.01.2023, 13:17 | |||
|
И если уж цитировать, то до конца
0
|
|||
|
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
|
|
| 09.01.2023, 08:33 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 15.02.2022
Сообщений: 469
|
||
| 11.01.2023, 17:52 [ТС] | ||
|
KingdaKa
если мы его не пропишем в классе?
0
|
||
|
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
|
||||||
| 11.01.2023, 19:11 | ||||||
0
|
||||||
|
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
|
|||||||
| 18.01.2023, 17:45 | |||||||
0
|
|||||||
|
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
|
|
| 19.01.2023, 15:19 | |
|
0
|
|
|
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
|
||
| 19.01.2023, 15:24 | ||
|
0
|
||
|
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
|
|||||||
| 19.01.2023, 15:37 | |||||||
|
1, явным unset() 2. когда завершится скрипт и все объекты будут уничтожены автоматически Добавлено через 3 минуты Пожалуй еще третим способом, например когда объект не сохранен и ипользований временного объекта больше нет
0
|
|||||||
|
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
|
|
| 19.01.2023, 15:48 | |
|
0
|
|
|
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
|
||||||||
| 19.01.2023, 16:01 | ||||||||
|
а на такой пример что ответите?
0
|
||||||||
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
|
| 19.01.2023, 17:21 | |
|
Vily Vykidnye, когда говорят, что unset освобождает память, это вовсе не означает, что память сразу же возвращается системе. Она может оставаться в резерве, быть повторно использована PHP, возвращена системе после освобождения каких-то смежных областей, чтобы получился один более крупный участок, и т.п.
Добавлено через 9 минут Внутри приложения обычно происходит то же самое, пока не исчерпан первоначально доступный блок памяти.
0
|
|
|
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
|
||
| 19.01.2023, 21:14 | ||
|
Phantom-84, что я и указал
![]() изучай
0
|
||
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
||
| 20.01.2023, 00:05 | ||
![]() Сведите оба примера вместе. Сразу будет понятно, что многое зависит от объема переменной. Освобождение небольших переменных PHP вполне может не показывать. Возможно, это какая-то освободившаяся ячейка в таблице переменных. Зато после освобождения объемной переменной может произойти полный откат к предыдущему показателю занятости памяти. Добавлено через 6 минут Кстати, интересный случай, когда сразу большая переменная создается и освобождается. У меня так: 375616 376672 375648 Как видно, почти все откатилось обратно за вычетом 32 байт. Возможно, эти 32 байта - и есть размер ячейки в таблице переменных. В вашем примере с числовой переменной была такая же разница после создания переменной: 400384 400416 Добавлено через 4 минут Еще одно подтверждение моей гипотезы, когда сначала создается и освобождается объемная (строковая) переменная, потом числовая: 376272 377328 376304 376304 376304 Даже после создания числовой переменной показатель не изменился - вполне возможно, что была задействована освободившаяся ранее "грязная" ячейка таблицы переменных.
0
|
||
|
-8 / 8 / 0
Регистрация: 31.08.2022
Сообщений: 209
|
||
| 20.01.2023, 13:28 | ||
![]() в п. 28 дано чётко, как это выглядит, могу продублировать популярнее
0
|
||
|
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
|
|
| 20.01.2023, 14:30 | |
|
Vily Vykidnye, не хотите замечать элементарные вещи, ваше дело. Делаю последнюю попытку вам объяснить. Во-первых, в моих примерах ПЕРВОНАЧАЛЬНАЯ ПАМЯТЬ замеряется. Во-вторых, посмотрите на его второй пример. Да, он опять скрыл неосвобождение (или неполное освобождение) памяти небольшой, на этот раз строковой, переменной, но зато показал вот это для объемной переменной:
401096 402376 401096 Полный откат. Возможно, не откатился к первоначальному показателю небольшой участок размером, например, 32 байта. Т.е. первоначальный показатель мог быть, например, таким: 401064 Иными словами, в какой-то мере вы тоже правы. Но в общем unset освобождает память, просто PHP может не показывать освобождение небольших участков, о чем я уже писал!
1
|
|
| 20.01.2023, 15:02 | ||||||
|
memory_get_usage() вообще "забавная" штука и нужно понимать, что показывает
![]() Недавно занимался оптимизацией. И так же натолкнулся на поведение, которое на первый взгляд странным показалось ![]() Псевдокод теста
1
|
||||||
| 20.01.2023, 15:02 | |
|
Повсюду unset классы и unset
Сессия восстанавливается после unset Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|