[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $this
Страницы: 1, 2, 3
Guest
twin
Цитата
Свойство инициализировано где? Здесь.

Вот только одно но это не свойство, а сам объект (экземпляр) заключенный в псевдо-переменную и является ни в коем случае указателем, больше всего ссылкой на экземпляр класса. Указатель содержит адрес ОП, ссылка же ссылается на адрес ОП.
Guest
Сорри ссылка ссылается по адресу на область ОП.
twin
bodja
Guest
Вот потому то и не могут люди понять, что это такое. Начинаете мудрить, кто кого терминами перещеголяет. Область, ссылки, указатели, экземпляры, статической, глобальной, локальной...

До вас реально не доходит, что люди просто боятся этих терминов, так как совершенно не понимают ваш птичий язык?
Цитата
Сорри ссылка ссылается по адресу на область ОП.
Вот сам запутался, чего от новичков хотите?

Есть простой способ понять - ассоциации. Класс - это печатный станок. Экземляр, это листок, который этот класс печатает. Их может быть много, листков. И называться они могут по разному. Пусть номерами - первый. второй, третий. Так вот $this->кошка говорит о том, что слово "кошка" нужно искать ЗДЕСЬ. На этом листке. А $третий->кошка мяукает на третьем листке.

Можно сказать иначе. $this->кошка можно интерпретировать как $этот->кошка. Имеется ввиду этот листок, а не третий или второй. И это верно. Но можно перевести как $эта->кошка. И всё, тупик. Потому что слово this переводится с английского не только, как ЭТОТ, что вполне понятно vasa_c с его многолетним опытом, но и как ЭТО, ЭТА.

Английский язык намного ассоциативнее русского, поэтому у них неоднозначностей не возникает. Но мы в жизни так не говорим: "найти этот листок, слово "кошка". Мы говорим "найти слово кошка здесь." Или "найти слово "кошка" на третьем листке". И это особенности перевода и интерпретации понятий.

Так что оно конечно хорошо, когда терминология точна. Но не всегда это понятно сразу. И для понимания нужно сначала разобраться в самом процессе, потом уже оперировать разными "научными терминами".

А кто куда ссылается, мне, поверьте, известно не хуже вас.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Возможно Вы и правы, но всё таки PHP это такой же язык программирования как и другие, в особенности то что приходят к ООП не новички, а уже более менее подготовленные ребята, которым уже для саморазвития хорошо было бы отличать указатель от ссылки. Лучше язык программирования в контексте ОПП не сводить к либеразиции и упрощению до такой степени. Интересный момент, что никого не видел что бы парился в ООП PHP при трактовании псевдопеременной $this. Париться в назначении да, но не в трактовании её.
twin
Цитата
Париться в назначении да, но не в трактовании её.
Одно исходит из другого. Если неправильно трактуешь, не понимаешь и назначение.
Цитата
Лучше язык программирования в контексте ОПП не сводить к либеразиции и упрощению до такой степени.
Это еще почему? Именно так и нужно. Иначе люди действительно думают об ООП как о чем то наподобие кунг-фу тибетских монахов. На самом деле, если действительно понять что там к чему, это становится настолько просто, что даже стыдно, что раньше не мог понять. Ну если искусственно не усложнять конечно.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bodja
Если копнуть глубоко и широко biggrin.gif указателем является число содержащее в себе адресс начала участка кода, это может быть обьект, фукция,подпрограмма и даже переменная.
Тоесть число содержащее в себе адресс чего либо. Такими вещами очень легко оперируют в ассемблере.Понятно , что команду перехода или целый код на это участок можно считать или называть ссылкой.В целом мне , что указатель , что ссылка - одинаково, смысл все равно один.

Цитата
Вот потому то и не могут люди понять, что это такое. Начинаете мудрить, кто кого терминами перещеголяет. Область, ссылки, указатели, экземпляры, статической, глобальной, локальной...

До вас реально не доходит, что люди просто боятся этих терминов, так как совершенно не понимают ваш птичий язык?

Это все основы, зачем их боятся?
Плохо,ИМХО, когда начинают учить сразу библиотеки, фреймфорки, паттерны не изучив толком возможностей самого языка, всем хочется сразу ,быстро и поменьше писать, а потом это начинает вылазить боком, так как забили себе голову совсем другими терминами.

Цитата
Есть простой способ понять - ассоциации. Класс - это печатный станок. Экземляр, это листок, который этот класс печатает. Их может быть много, листков. И называться они могут по разному. Пусть номерами - первый. второй, третий. Так вот $this->кошка говорит о том, что слово "кошка" нужно искать ЗДЕСЬ. На этом листке. А $третий->кошка мяукает на третьем листке.

Ну и как бы верно, и как бы не очень. Мы просто банально не знаем как будет называться обьект , поэтому и пишется ЭТО ЭТОТ ЭТА , да пофиг.
В классе мы описываем свойства и методы кошки , а не ее название.
Тоесть примерно так в классе.
$this->color
А снаружи
$cat1->color
$cat2->color
или так.
$cat[0]->color
$cat[1]->color
Кроме того this является зарезервированым именем во многих языках, его вряд ли можно с чем спутать.
twin
bodja
Цитата
Мы просто банально не знаем как будет называться обьект , поэтому и пишется ЭТО ЭТОТ ЭТА , да пофиг.
Не пофиг))) Объект - он. ЭТОТ. Свойство оно - ЭТО. Переменная она - ЭТА. Пойди разбери, к чему так написано $это->свойство. Ну это, и так видно, что это.

Я еще раз говорю, когда знаешь, что к чему - все кажется таким простым, что диву даешься, как люди не понимают. Но когда только начинаешь вникать... Ох я матерился, читая такие как у вас "разъяснения". Ну неужели нельзя нормально, по-русски, доходчиво объяснить. Как только откроешь учебник, началось. Объект - машина, свойство - красная, метод - едет. Пипец. Куда едет, почему красная...

Так и тут. Основы говоришь? Вот такие:
Цитата
Вот только одно но это не свойство, а сам объект (экземпляр) заключенный в псевдо-переменную и является ни в коем случае указателем, больше всего ссылкой на экземпляр класса. Указатель содержит адрес ОП, ссылка же ссылается на адрес ОП.


?
Да бъюсь головой об заклад, что 99,99% прочитавших начинающих из этого поняли только слово "заключенный" и то не в том контексте.

Основы должны даваться доступно, а не подобными ребусами.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bodja
Цитата
Ох я матерился, читая такие как у вас "разъяснения".

Ну не все родились хорошими учителями. biggrin.gif

Цитата
Как только откроешь учебник, началось. Объект - машина, свойство - красная, метод - едет. Пипец. Куда едет, почему красная...

Ну да. А как еще? biggrin.gif
Дело в том , что в класс вложен не просто код , а смысл. Это не просто набор методов и свойств.Они все описываются в классе для управления смысловой еденицей.
Например мы хотим , что бу у нас по экранчику ездили машинки , желательно разного цвета, размера ,с разной скоростью.
Пишем класс МАШИНКА
Свойства ЦВЕТ,СКОРОСТЬ,РАЗМЕР // параметры машинки
Метод ЕХАТЬ(Х,Y) //действия машинки

Потом создаем нужное количество обьектов на основе этого класса походу наделяя каждую машику-обьект своими свойствами. В итоге у нас ездит пол сотни машинок , а в коде всего лиш один класс нарисован. biggrin.gif biggrin.gif biggrin.gif
Ну как еще можно проще обьяснить? rolleyes.gif
twin
Самое смешное заключается в том, что это понятно сейчас. С другой стороны. Когда знаешь, как устроено ООП. То есть ассоциации выстраиваются наоборот. Машина похожа на класс. А не класс на машину. Класс на неё совершенно не похож, если столкнулся с ним в первый раз.

Это точно так же, как и $this. Кажется чего проще - указатель на свойство текущего экземпляра. А видишь первый раз и пипец. Для того, что бы понять это, нужно представлять, как работает ООП. А для того, чтобы понять, как устроено ООП, нужно понять, что на что ссылается. Замкнутый круг.

Для этого нужно сначала хотя бы понять, что класс, это как раз и есть
Цитата
просто набор методов и свойств
, понять как они взаимодействуют. А потом уже развивать события и нагружать его смысловой нагрузкой. Тогда и поедут машинки по экрану.

То есть нужно сначала понять, что вообще такое машина. Если её показать неандертальцу, он ни за что не поймет, что у неё должны крутиться колеса. Он их никогда раньше не видел. Как и новичек $this. А мы пытаемся ему(!) объяснить про марку бензина, инжектор, трансмиссию и дифференциал. Да еще и научными терминами. А потом удивляемся - да как же он не понимает, ведь все так просто.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
bodja
Цитата
Тоесть число содержащее в себе адресс чего либо. Такими вещами очень легко оперируют в ассемблере.Понятно , что команду перехода или целый код на это участок можно считать или называть ссылкой.В целом мне , что указатель , что ссылка - одинаково, смысл все равно один.

Вы чего?
Указатель и ссылка две разных сущности.
Указатель всегда имеет одну концепцию, это сам адрес хранящийся в переменной, которой можно оперировать, ссылка это относительное смещение на которое нужно сместится в ОП что бы получить доступ к корректным данным. Вы такое "В целом мне , что указатель , что ссылка - одинаково, смысл все равно один." не говорите C++, на это различие в первую очередь обращают внимание при изучении низкоуровневых языков.
Guest
Указатель - это переменная которая хранит адрес, ссылка - это псевдоним переменной.
bodja
Ну я не знаю...
А есть смысл обьяснять новичку в программировании что такое ООП?
Я например никогда не навязывал, просто знаю что человек сам должен к этому прийти.Всему свое время.
То что мы обсудили - это только часть инкапсуляции с примером машинки.
Что уже тогда говорить про наследование, по которому можно создавать уже не машинки ,а целые миры. Про полиморфизм который может все это изменять.
Там уже реальный вынос мозга, даже для серьезных пацанов. biggrin.gif
Тема ООП практически бесконечна, у нее потенциал очень большой.
Отсюда наверное и такое "поверхностное" отношение к мелочам и заумные словечки, потому что ООП затягивает тебя плавать в достаточно глубоких абстракциях.

Цитата
Указатель - это переменная которая хранит адрес, ссылка - это псевдоним переменной.

Да мне как то без разницы.
Мне по старым форумам , ко мне вечно цеплялись преподы, а по факту кроме зазубренных определений больше и ничего и незнали.
twin
bodja
Цитата
А есть смысл обьяснять новичку в программировании что такое ООП?
Ну если спрашивают, почему нет?
Цитата
Отсюда наверное и такое "поверхностное" отношение к мелочам и заумные словечки, потому что ООП затягивает тебя плавать в достаточно глубоких абстракциях.
А зачем так глубоко нырять, когда большая часть планктона на поверхности... Так и воздуха может не хватить. Адриналин только и в грудь пяткой. На самом деле подавляющее большинство задач на PHP (я не говорю о других ЯП) решается гораздо проще без абстракций. Наследование, если пристально разобраться, особого профита не дает. А инкапсуляция так вообще вещь вредная и опасная.

Но люди хотят знать и уметь. Коньюнктура же. Поэтому наверное стоит объяснять, раз спрашивают.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bodja
twin
Да уж, жизнь заставляет спускаться на землю. smile.gif
Ну а касаемо ООП в ПХП вам мое мнение уже давно известно.
Оправдано только в качестве "бонуса для распальцовки". biggrin.gif
Millenium
Цитата
// $this -> var; // $это -> переменная;
           $local -> var; // $местная -> переменная;

В книжках как-то не внятно и вскользь про это пишут.
До сих пор не доходит, допустим:
Class a
{
public s;
function ($a)// корректна будет передача св-ва в функцию?

{$this->s=$temp ;//обращаюсь к $s? т.е внутри метода далее можно работать с локально переменной $ temp?

return $temp;}


}


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.