Оглавление

Определение методов класса

Методы — это функции, специфические для класса. Отдельные операции, которые объект способен выполнять, определяются в классе в виде методов.

 
Например, чтобы создать методы, позволяющие устанавливать и получать значение свойства $prop1, добавьте в код строки, подсвеченные желтым фоном. 

<?php
class MyClass
{
    public $prop1 = "Это свойство класса!";
    public function setProperty($newval)   
    {                                      
        $this->prop1 = $newval;            
    }                                      
    public function getProperty()          
    {                                      
        return $this->prop1 . "<br />";    
    }                                      
} 
$obj = new MyClass;
echo $obj->prop1; 
?>

 

Примечание. В ООП объекты могут ссылаться на самих себя с помощью конструкции $this. Работая с методом, используйте выражение $this точно так же, как использовали бы имя объекта вне класса.


Чтобы воспользоваться методом, следует вызвать его, как обычную функцию, дополнительно сославшись на объект, которому он принадлежит. Получите значение свойства $propl класса MyClass, а затем установите и выведите новое значение этого свойства, внеся в сценарий изменения, подсвеченные желтым фоном.

 

<?php  
class MyClass 
{ 
    public $prop1 = "Это свойство класса!"; 
 
    public function setProperty($newval) 
    { 
        $this->prop1 = $newval; 
    } 
 
    public function getProperty() 
    { 
        return $this->prop1 . "<br />"; 
    } 
} 
$obj = new MyClass; 
echo $obj->getProperty(); // Получить значение свойства                          
$obj->setProperty("Это новое значение свойства!"); // Установить новое значение  
echo $obj->getProperty(); // Вновь прочитать свойство для демонстрации изменений 
?> 


Перезагрузив браузер, вы получите следующий результат.

Это  свойство  класса!
Это  новое  значение   свойства!

 

Преимущества ООП становятся очевидными, когда используются несколько экземпляров одного и того же класса. Добавьте в код еще один экземпляр miaccaMyClass и немного поэкспериментируйте с установкой и извлечением значений свойств.

 

<?php 
 
class MyClass 
{ 
    public $prop1 = "Это свойство класса!"; 
 
    public function setProperty($newval) 
    { 
        $this->prop1 = $newval; 
    } 
 
    public function getProperty() 
    { 
        return $this->prop1 . "<br />"; 
    } 
} 
 
// Создать два объекта                                              
$obj = new MyClass;                                                 
$obj2 = new MyClass;                                                
                                                                    
// Получить значения свойства $propl для обоих объектов             
echo $obj->getProperty();                                           
echo $obj2->getProperty();                                          
                                                                    
// Установить новые значения свойств для обоих объектов             
$obj->setProperty("Это новое значение свойства");                   
$obj2->setProperty("Это свойство принадлежит второму экземпляру!"); 
                                                                    
// Вывести значения свойства $propl для обоих объектов              
echo $obj->getProperty();                                           
echo $obj2->getProperty();                                          
 
?> 

Перезагрузив браузер, вы получите следующий результат.


Это свойство класса!
Это свойство класса!
Это новое значение свойства
Это свойство принадлежит второму экземпляру!

 

Нетрудно заметить, что ООП поддерживает объекты как независимые сущности, что облегчает разделение программы на небольшие, взаимодействующие между собой фрагменты кода.

  
Чтобы еще более упростить использование объектов, РНР предоставляет ряд так называемых магических методов, т.е. специальных методов, которые вызываются при выполнении некоторых типичных операций внутри объектов. Это позволяет разработчикам сравнительно легко решать множество полезных задач.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити