Объектно-ориентированное программирование — паттерн программирования (если говорить проще, то это что-то вроде стиля разработки. Он может быть таким, а может быть и каким-то совсем необычным, однако этот является самым распространенным. Это я к тому, что зимой обычно носят куртки (ООП), но кто-то может носить и шубу, например (другие стили программирования)). Зачем он нужен? Для того, чтобы с кодом было удобно работать, а его структура рассматривалась без особых энергозатрат. Подобный паттерн, само собой, подразумевает использование объектов. Надеюсь, вы помните, что такое объекты. Классический пример объекта:
В данном случае в переменной $myClassсодержится объект — экземпляр класса MyClass.
Теперь мы можем с ним работать, например, вот так:
Мы вызвали функцию someFunction, которая находится в классе MyClass путём обращения к новому экземпляру этого класса. Согласен, понять это — задача не из простых. Сейчас попробую объяснить:
Ну вот как-то так. Пока у нас есть только эти строки:
,
то мы не имеем никакого права обращаться к этому классу, т. к. он существует лишь абстрактно в нашем коде, как модель класса (напоминаю, сейчас речь не идет о статическом классе, где используется прямое обращение к нему, т. к. де-юре он является уже не моделью, а объектом). Однако всё меняется, когда мы добавляем строку под номером 10:
.
На этом моменте PHP строит физический объект нашей модели, запихивая его в переменную $myClass и предоставляя нам возможность работать с этим классом. Хочу заметить, что если мы продублируем эту строку, а новый экземпляр класса присвоим переменной $b, то это будет уже другой объект, но базироваться он будет всё равно на нашей модели. Это можно представить себе так: в руках у вас каталог «Икеи», любезно подброшенный в ваш почтовый ящик. Вы увидели на картинке симпатичный стол, прихеали и купили его. Теперь мы можете поставить его у себя в квартире где вам будет угодно. По модели вы купили физический объект. Если предположить, что до вашей квартиры стол по каким-то причинам не доехал, то вы можете купить еще один. Новый. Вы купите еще один стол, по той же модели, но уже новый. Примерно так же и работают классы и их экземпляры в PHP.