Классы в PHP
|
|
Radiance |
Дата: Четверг, 18.06.2015, 16:30 | Сообщение # 1
|
Боец
Сообщений: 209
Статус: Offline
|
Источники:
Классы в PHP, что это и с чем их кушать? Волшебство $this в классах.
Класс в PHP, как и обычно, простыми словами - это нечто, содержащее пользовательские методы и свойства, где методы - это функции, свойства - переменные.
Код <?php class userClass { // это - свойства класса public $var1 = '1'; public $var2 = '2'; // А это - методы класса public function myFunc1() { /* Тело функции */ } public function myFunc2() { /* Тело функции */ } } ?>
В принципе, с классов и начинается всё ООП (объектно-ориентированное программирование) в PHP.
Думаю, вы заметили интересное слово public и заинтересовались, что это. Объясню. Это, скажем так, определитель того, откуда будет доступен метод или свойство класса.
Различают три вида:
public - говорит о том, что метод или свойство можно использовать где угодно, после вызова объекта класса. private - говорит о том, что метод или свойство можно использовать только внутри тела класса. protected - говорит о том, что метод или свойство можно использовать внутри тела класса, его наследников и родителей.
Обратиться к методам и свойствам классов можно по разному. Например так:
Код userClass()::myFunc2();
Либо такой вариант, более предпочитаемый:
Код // Создадим объект класса $object = new userClass; // Обратимся к методу класса $object->myFunc1();
Кстати, как видно в примере выше, мы вызвали объект класса. Объясню, что это такое.
Достаточно сложно объяснить даже. Объект класса, говоря языком магистра Йоды, это то, что создается на основе класса. Выражаясь уж очень топорно, и рискуя получить по щам за такую формулировку от братьев-программистов, можно сказать, что это переменная, содержащая методы и свойства класса.
Но мы немного отступили. Вернемся в наш мир.
Преимуществом второго способа является то, что он позволяет использовать внутри метода, к которому обращаемся, ключевое свойство $this $this используется для обращения к свойствам и методам класса внутри него самого.
Код
<?php class userClass {
public $var1 = '1'; public $var2 = '2';
public function myFunc1() { // Обратимся к функции myFunc2() $this->myFunc2(); } public function myFunc2() { /* Тело функции */ } } ?>
В данном примере мы вызвали внутри функции func1() функцию func2().
Проблемой при использовании $this может стать то, что мы не сможем вызвать функцию класса первым вариантом, описанным выше (userClass::myFunc1(); ), т.к. не вызван объект класса.
Повторюсь, что объект класса можно вызвать следующим образом: Код $object = new userClass;
Ах, да, забыл. Свойство объекта можно изменить в любой момент Код $object->var1 = 'Вася долбит метамфетамины';
Использование объектов даёт очень интересные возможности. К примеру, как бы наркомански это не звучало, можно сохранить объект хоть в файл, хоть в базу, вызвать его через пол года, и продолжить с ним работу. Или возможность создания сколько угодно экземпляров класса, и работа с каждым экземпляром по отдельности, независимо от остальных.
Ну что ж, основную часть теории вы, друзья мои, получили. Так что в этом посте моя задача выполнена.
Радик камбек :D
|
|
|
|
Nutsuk |
Дата: Четверг, 18.06.2015, 22:30 | Сообщение # 2
|
Боец
Сообщений: 79
Статус: Offline
|
Лучше уж книгу об этом почитать. Статья сама по себе бессмысленна.
Сообщение отредактировал Nutsuk - Четверг, 18.06.2015, 22:40 |
|
|
|
Radiance |
Дата: Пятница, 19.06.2015, 06:31 | Сообщение # 3
|
Боец
Сообщений: 209
Статус: Offline
|
Nutsuk, я пока что никакой толковой литературы не встречал, по крайней мере на русском языке. Весь смысл - сбор автором бабла. А англоязычная литература бывает достаточно тяжела в усвоении из за дваякости терминов и особенностей стиля написания.
Радик камбек :D
|
|
|
|
Nutsuk |
Дата: Пятница, 19.06.2015, 14:10 | Сообщение # 4
|
Боец
Сообщений: 79
Статус: Offline
|
Цитата Radiance ( ) я пока что никакой толковой литературы не встречал, по крайней мере на русском языке. Весь смысл - сбор автором бабла. А англоязычная литература бывает достаточно тяжела в усвоении из за дваякости терминов и особенностей стиля написания. Частично я с тобой согласен. Но вот такая статья вряд ли кому-то поможет.
|
|
|
|
Radiance |
Дата: Пятница, 19.06.2015, 16:53 | Сообщение # 5
|
Боец
Сообщений: 209
Статус: Offline
|
Nutsuk, а статья и не подразумевает под собой информационную ёмкость учебника в 3 тысячах символов.
Как отправная точка в понимании - самое оно. Кого заинтересует - начнет щупать ООП, пробовать, спрашивать, изучать.
Радик камбек :D
|
|
|
|
Just-A-Man |
Дата: Воскресенье, 04.10.2015, 05:09 | Сообщение # 6
|
Coder
Сообщений: 427
Статус: Offline
|
я вообще не понимаю ООП php. Цитата Nutsuk ( ) Статья сама по себе бессмысленна. нормальная статья, все коротко и ясно, без пафосных слов Цитата Nutsuk ( ) Лучше уж книгу об этом почитать тут соглашусь с Radiance.
|
|
|
|