helly Mon Mar 3 06:19:02 2003 EDT Added files: /php4/tests/classes ctor_dtor.phpt ctor_dtor_inheritance.phpt Log: Adding tests for ctor/dtor handling
Index: php4/tests/classes/ctor_dtor.phpt +++ php4/tests/classes/ctor_dtor.phpt --TEST-- The new constructor/destructor is called --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class early { function early() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } function __construct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } function __destruct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } } class late { function __construct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } function late() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } function __destruct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; } } $t = new early(); $t->early(); unset($t); $t = new late(); $t->late(); //unset($t); delay to end of script echo "Done\n"; ?> --EXPECTF-- early::__construct early::early early::__destruct late::__construct late::late Done late::__destruct Index: php4/tests/classes/ctor_dtor_inheritance.phpt +++ php4/tests/classes/ctor_dtor_inheritance.phpt --TEST-- A derived class can use the inherited constructor/destructor --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php // This test checks for: // - inherited constructors/destructors are not called automatically // - base classes know about derived properties in constructor/destructor // - base class constructors/destructors know the instanciated class name class base { public $name; function __construct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; $this->name = 'base'; print_r($this); } function __destruct() { echo __CLASS__ . "::" . __FUNCTION__ . "\n"; print_r($this); } } class derived extends base { public $other; function __construct() { $this->name = 'init'; $this->other = 'other'; print_r($this); parent::__construct(); echo __CLASS__ . "::" . __FUNCTION__ . "\n"; $this->name = 'derived'; print_r($this); } function __destruct() { parent::__destruct(); echo __CLASS__ . "::" . __FUNCTION__ . "\n"; print_r($this); } } echo "Testing class base\n"; $t = new base(); unset($t); echo "Testing class derived\n"; $t = new derived(); unset($t); echo "Done\n"; ?> --EXPECTF-- Testing class base base::__construct base Object ( [name] => base ) base::__destruct base Object ( [name] => base ) Testing class derived derived Object ( [other] => other [name] => init ) base::__construct derived Object ( [other] => other [name] => base ) derived::__construct derived Object ( [other] => other [name] => derived ) base::__destruct derived Object ( [other] => other [name] => derived ) derived::__destruct derived Object ( [other] => other [name] => derived ) Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php