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

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

17.06.2016, 17:30. Показов 1906. Ответов 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
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru