Простой класс на PHP



В следующем простом шаблоне наглядно представлены следующие механизмы:
- Константы, свойства и методы класса
- Конструктор и деструктор
- Ограничение видимости свойств и методов
- Статические свойства и методы
- Доступ к свойствам через $this и self

// Функция для автоматической загрузки класса

function __autoload($class_name) {
    require_once $class_name . '.php';
}



// Простой класс

class SimpleClass {
    // Константы
    const X = 'default constant';

    // Свойства
    public static $s = 'Default Static';
    public $pub = 'Default Public';
    private $prv = 'Default Private';
    protected $prt = 'Default Protected';

    // Конструктор
    function __construct() {
        echo "Start...n";
    }

    // Деструктор
    function __destruct() {
        echo "Finish...n";
    }

    // Доступ к private свойству
    public function ShowPrivate() {
        if (isset($this)) {
            echo $this->prv . "n";
        } else {
            echo "[]n";
        }
    }

    // Статический метод
    public static function ShowStatic() {
        echo self::$s . "n";
    }

} // class

// Создание и использование

$a = new SimpleClass();
SimpleClass::ShowPrivate();
$a->ShowPrivate();
SimpleClass::ShowStatic();
SimpleClass::$s = 'new static';

$b = new SimpleClass();
echo SimpleClass::X . "n";
echo SimpleClass::$s . "n";

// Клонирование

$d = clone $a;