Unified constructors in PHP4

Grey_EM

Guest
Unified constructors in PHP4

Кто-нибудь может объяснить чего автор хотел добиться создав такой механизм?
PHP:
Unified constructors in PHP4:

<?php
class Object {
function Object() {
$args= func_get_args();
call_user_func_array(array(&$this, '__construct'), $args);
}

function __construct($args= NULL) {
var_dump($args);
}
}

class Exception extends Object {
var
$message;

function __construct($message) {
$this->message= $message;
parent::__construct();
}
}

class IOException extends Exception {
}

var_dump(
error_reporting(), 
zend_version(), 
phpversion()
);

$c= new IOException('file not found');

echo '===> Result: '; var_dump($c);
?>
Это из примечаний к
http://ru.php.net/manual/ru/function.call-user-func-array.php
 

Vinny

Guest
На сколько я знаю, в ZendEngine 2.0 используется новая объектная модель, в которой конструктор называется __construct. В "старой" объектной модели в ZendEngine 1.0 в качестве конструктора выступает функция с названием, совпадающем с именем класса.
Таким образом автор показал пример "унифицированного" конструктора, который будет работать в обоих версиях объектной модели.

ИМХО так.
 

Максим Деркачев

Guest
Ага. И исключение заодно эмулировал.
 
Сверху