Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825

Пояснение по this

17.06.2016, 17:30. Показов 1928. Ответов 16

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Кто может на пальцах пояснить предназначение $this и на что ссылается $this и т.д.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.06.2016, 17:30
Ответы с готовыми решениями:

нужно пояснение по части из курсовой связанной с записями и массивами, напротив вопросов дать пояснение что операторы делают или строчки программы
лучше если конечно дадите по строчное определение что делает программа тут program Cntrl; uses crt; const...

Пояснение
Препод-редиска,говорит объясни мне каждую строчку,а я как четвероногий друг:понимаю но объяснить не могу,поэтому обращаюсь к знающим...

пояснение
у меня есть задание и готовый код к нему. напишите пожалуйста пояснение к коду. срочно помогите! uses crt; function...

16
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.06.2016, 17:36
Цитата Сообщение от Inkvizzz Посмотреть сообщение
на что ссылается $this
на себя
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
17.06.2016, 17:39  [ТС]
Jewbacabra, норм объяснение $this на пальцах
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
17.06.2016, 18:07
Inkvizzz, что конкретно в $this не понятно?
0
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
17.06.2016, 18:08  [ТС]
Jewbacabra, как она работает не понятно, я и на php.net и php.su читал, но до конца не понял как оно работает.
0
 Аватар для brain-4-me
162 / 150 / 97
Регистрация: 24.12.2013
Сообщений: 744
Записей в блоге: 12
17.06.2016, 18:52
Inkvizzz, я тоже долго понять не мог что да как, разобрался очень очень просто, напиши какой нибудь маленький класс и ссылайся на него, тут надо просто понять логику, $this ссылается на себя это да но задается она по разному) напиши и все поймешь
1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
17.06.2016, 19:14
Цитата Сообщение от Inkvizzz Посмотреть сообщение
Кто может на пальцах пояснить предназначение $this и на что ссылается $this и т.д.
Невозможно вот так просто взять и объяснить что такое $this на пальцах человеку, который не знаком с ООП. Это все равно что объяснять что такое интеграл человеку, который не умеет складывать числа.

Прочитайте учебник по ООП в PHP (хотя не обязательно PHP, принципы везде одинаковые).
2
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
17.06.2016, 20:42
Лучший ответ Сообщение было отмечено Inkvizzz как решение

Решение

Цитата Сообщение от Inkvizzz Посмотреть сообщение
Кто может на пальцах пояснить предназначение $this и на что ссылается $this и т.д.
Вот вам простой класс:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Product
{
    public $price = 1000;
    public $discount = 200;
 
    public function showPrice()
    {
        $price = $this->price - $this->discount;
        echo 'Цена: ' . $price;
    }
}
 
$obj = new Product();
$obj->showPrice();
$price - это просто переменная.
$this->price - это переменная объекта.

Как написали выше, $this ссылается на себя, т.е. на вызываемый объект. Вне класса вы можете написать $obj->showPrice(), а внутри (в функциях) нужно писать $this->showPrice().
2
31 / 45 / 21
Регистрация: 09.10.2012
Сообщений: 825
17.06.2016, 22:14  [ТС]
pav1uxa, ну вот как раз и собираюсь уходить от процедурки и начал читать оф мануал про ООП, запнулся на это моменте Человеку постом ниже удалось мне объяснить как говорят "на пальцах", что к чему
0
5 / 5 / 2
Регистрация: 26.03.2015
Сообщений: 68
24.06.2016, 12:14
Пока пишется код класса ни о каком конкретном экземпляре объекта не идёт речь. Поэтому вставляется $this.
Если же создаётся какой-то объект (двумя постами выше - $obj), то в момент выполнения вместо $this подставляется $obj.
Т.е. создаётся объект $obj с переменными $price и $discount, имеющими, значения 1000 и 200 соответственно. Обратиться к этим переменным можно так: $obj->$price и $obj->$discount. (К переменной $price из метода showPrice() обратиться за пределами этого метода, а тем более класса, нельзя).
Если создать ещё один объект, например $obj2, то при вызове метода $obj2->showPrice() интепретатор PHP подставит вместо $this значение $obj2.

Добавлено через 7 минут
Немного поправлюсь:
Пока пишется код класса ни о каком конкретном экземпляре объекта не идёт речь. Поэтому вставляется $this.
Если же создаётся какой-то объект (двумя постами выше - $obj), то в момент выполнения вместо $this подставляется $obj.
Т.е. создаётся объект $obj с переменными $price и $discount, имеющими, значения 1000 и 200 соответственно. Обращение к этим переменным в методе showPrice() происходит так: $obj->price и $obj->discount. (К переменной $price из метода showPrice() обратиться за пределами этого метода, а тем более класса, нельзя).
Если создать ещё один объект, например $obj2, то при вызове метода $obj2->showPrice() интепретатор PHP подставит вместо $this значение $obj2.
1
0 / 0 / 1
Регистрация: 17.12.2013
Сообщений: 66
29.07.2016, 20:37
Правильно, тоже начал изучать ООП, и не мог понять, как и на что ссылается, понял только после того как начал писать свои примеры, на базе тех что видел в туториалах, и тогда на ошибках ты начинаеш понимать логику. Классы и подклассы, доступ к обьектам и т д, наследование и т д.. пока что дошел до Инкапсюляции но еще не изучал, потом идут Абстракты, тоже интересно что это, просто раньше мне это не нужно было, так понимал базого что где ковырнуть и т д.. а когда реально понадобился, а особенно ковырять классы и ооп... тут без изучение всего этого не обошлось, начал понимать так же что ооп это хорошая вещь в том плане что ты в одном месте можеш описать весь ход работы ну или как то так
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
29.07.2016, 21:03
Цитата Сообщение от phpbb Посмотреть сообщение
пока что дошел до Инкапсюляции но еще не изучал

Не по теме:

Изучите - расскажете нам что это такое :)

0
0 / 0 / 1
Регистрация: 17.12.2013
Сообщений: 66
30.07.2016, 00:12
Ну если вы из за на писание смеетесь
Я просто столкнулся с ООП и решил изучить все что касается этого делать, что бы хотя бы иметь представление о том что это и как оно может быть полезно. Просто раньше этого небыло нужды делать, сейчас как говориться пока не припечет.. не займешься.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
30.07.2016, 00:34
Цитата Сообщение от phpbb Посмотреть сообщение
Ну если вы из за на писание смеетесь

Не по теме:

Нет, неправильного написания я даже не заметил, если честно.

Просто я не представляю себе как можно "изучать инкапсуляцию". И уж тем более изучать изучать ООП, а потом вдруг "дойти до инкапсуляции" :)

0
0 / 0 / 1
Регистрация: 17.12.2013
Сообщений: 66
30.07.2016, 01:15
А, понял к чему вы, ООП и есть инкапсуляция ?
Я просто смотрел видео уроки, и там было все в такой последовательностьи,

1.Классы
2.Наследование
3.Инкапсуляция
4.Полифоризм
5.Абстракция

Только что посмотрел, действительно там было написанно Наследование/Инкапсуляция, т.е этот урок я прошел ! ошибся, просто там про говорилось мельком.. оказывается я понял что это, это закрытый обьек к который выполняет теневые задачи можно сказать и выдает результат
0
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
30.07.2016, 21:36
pav1uxa, Ну как-то наверное так:
1) человек взял книгу про ООП
2) прочитал раздел где объясняется про классы и объекты, переменные и свойства, функции и методы
3) прочитал еще один раздел, где описывается наследование (возможно даже полиморфизм в этом контексте)
4) дошел до раздела инкапсуляция
5)еще не прочитал его:-)
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
31.07.2016, 00:20
Цитата Сообщение от santaatnas Посмотреть сообщение
Ну как-то наверное так:
1) человек взял книгу про ООП

Не по теме:

"Человек" понял что я имел ввиду. А вот Вы - нет. Вам бы не помешало самому "взять книгу про ООП" :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2016, 00:20
Помогаю со студенческими работами здесь

Пояснение
Кто может помочь написать пояснение к строкам этой программы ? Правила форума п. 5.18 Код перепечатайте руками в тему!

пояснение к коду
помогите пожалуйста. напишите поянение к коду. var f1, f2 : text; s : string; i : integer; flagEnd : boolean; begin ...

Пояснение к коду
Добрый день! Вопрос в следующем, есть конструктор объявленный в хелпе: virtual __fastcall TGIS_LayerSHP(); Я не понимаю...

Пояснение к скрипту
syms x ;%определение символьной переменной x% y=-1.1*x^5+4.5*x^4-1.6*x^3-2.5*x^2+0.5*x;%определение символьной переменной y через x% ...

Пояснение кода
Ребят можете объяснить мне этот код . Желательно подробней $percent = 0.3; list($width, $height) = getimagesize($tmp); ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru