19 марта 2024, вторник  

PHPworld.ru - все о программировании на PHP, основы языка PHP, особенности PHP5
PHPworld.ru php php 5 SQLite Статьи Книги Форум PHP Гостевая книга Ссылки по PHP

PHP 5




 

ООП в PHP 5 - конструкторы и деструкторы

php 5
В PHP 5 введены конструкторы и деструкторы.


Метод-конструктор вызывается автоматически при каждом создании объекта. И хотя конструктор появился в PHP давно (эту роль выполнял метод, названный именем класса), но в PHP 5 была изменена схема именования конструктора - метод __construct() является теперь конструктором класса.

Аналогично, при уничтожении объекта вызывается специальный метод __destruct() – деструктор класса.

<?php
     class MyClass {
         function __construct() {
             echo "Запущен конструктор";
         }
         function __destruct() {
             echo "Запущен деструктор";
         } 
     }
     $obj = new MyClass(); // Выводит "Запущен конструктор"
     unset($obj); // Выводит "Запущен деструктор"
?>

Если же необходимо вызвать конструктор или деструктор базового класса, то необходимо это делать явно, через указатель parent.

<?php
     class MyClass {
         function __construct() {
             echo "Запущен конструктор базового класса";
         }
         function __destruct() {
             echo "Запущен деструктор базового класса";
         } 
     }
     class MyClass1 extends MyClass {
        function __construct() {
            parent::__construct();
        }
        function __destruct() {
            parent::__destruct();
        } 
    }  
    $obj = new MyClass1(); // Выводит "Запущен конструктор
                                       // базового класса"
    unset($obj); // Выводит "Запущен деструктор базового класса"
?>

Для целей совместимости с предыдущей версией PHP 5 поступает следующем образом: если при создании объекта в классе не найдет конструктор __construct(), то PHP пытается выполнить метод, имя которого совпадает с именем класса.  Т.о. конструкторы PHP 4 будут работать с PHP 5 без каких-либо изменений кода.

Дата публикации: 11.07.04
Последнее обновление: -
Просмотров: 81698

Copyright © PHP World - Леонид Лукин, 2004-2008.

Главная PHP World | PHP | PHP 5 | SQLite | Статьи по PHP | Книги по PHP | Ссылки по PHP | CV