Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
И так для начала, немного терминологии и азов, для того что бы дальше было проще. Класс - это нечто что может содержать в себе пользовательские функции(методы) и переменные(свойства). Повторим, функции в классе - это методы, а переменные - это свойства.
Пример:
Ключевое слово public перед методами и свойствами говорит о том что данный метод или свойство доступно из любого места. То есть оно открыто для использования, без каких либо ограничений. Вот список подобных ключевых слов:
public - открыто для использования везде
private - можно использовать только внутри данного класса
protected - можно использовать только внутри данного класса и его наследников и родителей.
Обращение к свойствам и методам классов можно делать по разному, но не все способы идентичны. Например обратиться к методу класса можно так
Преимущество второго способа в том что оно позволяет использовать внутри метода, к которому вы обращаетесь, ключевое слово $this. Оно используеться для обращения к методам и свойствам класса, внутри него самого.
Пример:
Как видите мы используем в методе func1 ключевое слово $this и теперь, если мы обратимся к этому методу так MyClass::func1() это вызовет ошибку, так как мы не создав объект, пытаемся его использовать. Что такое объект класса? Хм... Как бы объяснить по лучше.. Это то что мы создаем на основе класса. Вызов вида
и есть создание объекта. Теперь мы можем обращаться к его методам и свойствам так
Использование именно объектов дает некоторые преимущества. Например, кроме того, что мы можем использовать $this, мы так же можем сохранить объект в таком виде как он сейчас есть в файл и в любой момент его извлеч. Да именно, это не опечатка.
Пример:
Есть еще кое что о чем стоит сказать. На основе одного класса можно создавать сколько угодно объектов, а не только один и работать с ними независимо друг от друга. То есть тут я показываю примеры с одним объектом, но их может быть и больше. С объектами проще работать, когда начинаешь понимать их концепцию. Представьте что нашь мир это программа, в ней есть класс ЧЕЛОВЕК, на основе которого создаються объекты(люди), есть класс МАШИНА, на основе которого создаються объекты(машины). У класса МАШИНА есть свойства цвет, скорость, вес, объем двигателя и есть методы газ, тормоз, поворот. У класса ЧЕЛОВЕК есть свойства рост, вес, пол и есть методы идти, сесть, лежать и т.д. Ну что стало понятнее? Надеюсь да Если что пишите, сделаю еще одну, более продвинутую статью.
С вами был Drunya
Пример:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php class MyClass {
//свойства класса
public $var1 = '1';
public $var2 = '2';
//методы класса
public function func1() {
}
public function func2() {
}
}?>
Ключевое слово public перед методами и свойствами говорит о том что данный метод или свойство доступно из любого места. То есть оно открыто для использования, без каких либо ограничений. Вот список подобных ключевых слов:
public - открыто для использования везде
private - можно использовать только внутри данного класса
protected - можно использовать только внутри данного класса и его наследников и родителей.
Обращение к свойствам и методам классов можно делать по разному, но не все способы идентичны. Например обратиться к методу класса можно так
1
2
3
4
<?php MyClass::func1();
//и так
$obj = new MyClass;
$obj->func1();?>
Преимущество второго способа в том что оно позволяет использовать внутри метода, к которому вы обращаетесь, ключевое слово $this. Оно используеться для обращения к методам и свойствам класса, внутри него самого.
Пример:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php class MyClass {
//свойства класса
public $var1 = '1';
public $var2 = '2';
//методы класса
public function func1() {
//обращаемся к методу этого же класса
$this->func2();
}
public function func2() {
}
}?>
Как видите мы используем в методе func1 ключевое слово $this и теперь, если мы обратимся к этому методу так MyClass::func1() это вызовет ошибку, так как мы не создав объект, пытаемся его использовать. Что такое объект класса? Хм... Как бы объяснить по лучше.. Это то что мы создаем на основе класса. Вызов вида
1
2
<?php $obj = new MyClass;?>
1
2
3
4
<?php //меняем значение свойства
$obj->var1 = '33';
//вызываем метод
$obj->func1();?>
Использование именно объектов дает некоторые преимущества. Например, кроме того, что мы можем использовать $this, мы так же можем сохранить объект в таком виде как он сейчас есть в файл и в любой момент его извлеч. Да именно, это не опечатка.
Пример:
1
2
3
4
5
6
7
8
9
10
11
<?php //меняем значение свойства
$obj->var1 = '33';
//вызываем метод
$obj->func1();
//теперь наш объект изменен, ведь мы поменяли значение свойства
// например нам надо запомнить именно это состояние объекта
$object = serialize($obj); //теперь весь объект в виде строки
file_put_contents('file.dat', $object); //записали объект в файл
$object = file_get_contents('file.dat'); //получили объект из файла в виде строки
$obj = unserialize($object); //объек сново готов к работе, в таком виде как мы его когдато сохранили?>
Есть еще кое что о чем стоит сказать. На основе одного класса можно создавать сколько угодно объектов, а не только один и работать с ними независимо друг от друга. То есть тут я показываю примеры с одним объектом, но их может быть и больше. С объектами проще работать, когда начинаешь понимать их концепцию. Представьте что нашь мир это программа, в ней есть класс ЧЕЛОВЕК, на основе которого создаються объекты(люди), есть класс МАШИНА, на основе которого создаються объекты(машины). У класса МАШИНА есть свойства цвет, скорость, вес, объем двигателя и есть методы газ, тормоз, поворот. У класса ЧЕЛОВЕК есть свойства рост, вес, пол и есть методы идти, сесть, лежать и т.д. Ну что стало понятнее? Надеюсь да Если что пишите, сделаю еще одну, более продвинутую статью.
С вами был Drunya
Классы в PHP для чайников
Теги: ООП; PHP; Объектно ориентированное программирование; бесплатная CMS Fapos;
Источник: Drunya
Теги: ООП; PHP; Объектно ориентированное программирование; бесплатная CMS Fapos;
Источник: Drunya
Комментарии
-
HIshnik
Автор! Браво!Дата отправления: 24 Апр 2015 -
Drunya
Ну я заметил что осознать суть классов гораздо проще на таких вот примерах. Сам когда-то именно на таком примере въехал в них, вот и решил написать еще одну подобную статью. Как видно, не зря.Дата отправления: 30 Апр 2014 -
work
спасибо. на примере человека и машин сразу все понятно стало ))Дата отправления: 26 Апр 2014 -
skad0
Спасиб!Дата отправления: 4 Авг 2011 -
Drunya
Пожалуйста. Обращайтесь)Дата отправления: 4 Авг 2011
Сейчас online: 11. Зарегистрированных: 0. Гостей: 11.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте