Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Автор: чайник, в новости:

Что такое API и для чего они нужны

Автор: HIshnik, в новости:

Классы в PHP для чайников

Автор: Аноним, в новости:

Написание простого вируса в блокноте

Автор: stream, в новости:

Создаем BB коды на PHP

Топ пользователей
Drunya
Репутация: 108
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
И так для начала, немного терминологии и азов, для того что бы дальше было проще. Класс - это нечто что может содержать в себе пользовательские функции(методы) и переменные(свойства). Повторим, функции в классе - это методы, а переменные - это свойства.

Пример:
 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
Автор: Drunya
Категория: PHP
Просмотров: 16167
Комментариев: 5

Комментарии
  • User avatar

    HIshnik

    Автор! Браво! 
    Дата отправления: 24 Апр 2015
  • User avatar

    Drunya

    Ну я заметил что осознать суть классов гораздо проще на таких вот примерах. Сам когда-то именно на таком примере въехал в них, вот и решил написать еще одну подобную статью. Как видно, не зря.
    Дата отправления: 30 Апр 2014
  • User avatar

    work

    спасибо. на примере человека и машин сразу все понятно стало ))
    Дата отправления: 26 Апр 2014
  • User avatar

    skad0

    Спасиб!
    Дата отправления: 4 Авг 2011
  • User avatar

    Drunya

    Пожалуйста. Обращайтесь)
    Дата отправления: 4 Авг 2011
Сейчас online: 19. Зарегистрированных: 0. Гостей: 19.
-->