Добавить новость
Новости сегодня

Новости от TheMoneytizer

Программирование: для чего в языке РНР нужна псевдопеременная $this и как ее использовать?

Программирование: для чего в языке РНР нужна псевдопеременная $this и как ее использовать? SDM-2019
 Классы и объектыОбъектно-ориентированное программирование (ООП), которое используется в PHP начиная с 5 версии, предоставляет программисту возможность создавать любое количество экземпляров одного и того же класса, называемых объектами; при этом каждый образованный экземпляр получает свое имя. Объект может принимать данные, называемые аргументами, обрабатывать их при помощи функций и выдавать результат. Любая функция класса может обращаться к его свойствам не на прямую, а только через конструкцию объект->свойство, поэтому возникает вопрос: как написать такой универсальный код, который позволит работать с данными любому образованному объекту независимо от его имени? Рассмотрим пример, отображенный на рисунке 1.Данный код объявляет класс Mathematics, имеющий переменную (свойство) digit и две функции (метода), одна из которых является конструктором, т.е. автоматически запускается при создании нового объекта. Задача функции-конструктора - присвоить свойству digit данные, получаемые аргументом $dig при создании объекта. Метод getDigit() при его вызове возвращает значение свойства digit.Далее рассмотрим строки 12 и 13. В них создаются два новых экземпляра класса Mathematics, один из которых получает в качестве аргумента число 5, а другой - 7. Эти значения функцией конструктором присваиваются переменной (свойству) private $digit, доступной только внутри класса. Каждый созданный объект присваивается переменным $a и $bсоответственно (если говорить точнее, то эти переменные получают только ссылки на указанные объекты, но это в данный момент не имеет значения). Теперь можно получить значения свойства digit простым вызовом метода getDigit (строки 15 и 16).Назначение псевдопеременной $thisОбратите внимание: у нас имеются два разных объекта, имеющих абсолютно одинаковые методы. Каким же образом метод получает информацию о том, данные какого объекта нужно обрабатывать, если его код был прописан еще до создания этого объекта?И вот здесь приходит на помощь псевдопеременная $this. Ее название можно перевести с английского как «этот», т.е. $this указывает (является ссылкой) на тот объект, в котором она находится. В результате строку 5 для $a можно прочитать как «присвоить свойству digitобъекта $a значение аргумента $dig», строку 8 - «возвратить значение свойства digit объекта $a». Для $b переменная $this автоматически примет соответствующее значение.Правила использования $thisТак как $this является ссылкой на вызываемый объект, данной переменной нельзя присваивать никакие значения. 

Читайте на сайте


Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. Абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city
Музыкальные новости
Новости России
Экология в России и мире
Спорт в России и мире
Moscow.media






Топ новостей на этот час

Rss.plus





СМИ24.net — правдивые новости, непрерывно 24/7 на русском языке с ежеминутным обновлением *