diff options
author | Marcus Boerger <helly@php.net> | 2003-04-19 18:21:58 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-04-19 18:21:58 +0000 |
commit | dc27fbd90f5bc67c968bcf71b6c0481e6d59ba9d (patch) | |
tree | a8b8d6a10aebb026e2fbe0440b6e1abf76a54145 /tests | |
parent | 6bc4ce43d0fe4878fd38a661100fac81178dc476 (diff) | |
download | php-git-dc27fbd90f5bc67c968bcf71b6c0481e6d59ba9d.tar.gz |
Add a test for ctor precedence
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/classes/inheritance_002.phpt | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/classes/inheritance_002.phpt b/tests/classes/inheritance_002.phpt new file mode 100755 index 0000000000..41358928bf --- /dev/null +++ b/tests/classes/inheritance_002.phpt @@ -0,0 +1,87 @@ +--TEST-- +Constructor precedence +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php + namespace php4 { + class Base { + function Base() { + var_dump('Base constructor'); + } + } + + class Child extends Base { + function Child() { + var_dump('Child constructor'); + parent::Base(); + } + } + } + + namespace php5 { + class Base { + function __construct() { + var_dump('Base constructor'); + } + + function Base() { + var_dump('I should not be called'); + } + } + + class Child extends Base { + function __construct() { + var_dump('Child constructor'); + parent::__construct(); + } + + function Child() { + var_dump('I should not be called'); + } + } + } + + namespace mixed1 { + class Child extends php4::Base { + function __construct() { + var_dump('Child constructor'); + parent::Base(); + } + } + } + + namespace mixed2 { + class Child extends php5::Base { + function Child() { + var_dump('Child constructor'); + parent::__construct(); + } + } + } + + echo "### PHP4 style\n"; + $c4= new php4::Child(); + + echo "### PHP5 style\n"; + $c5= new php5::Child(); + + echo "### Mixed style 1\n"; + $cm= new mixed1::Child(); + + echo "### Mixed style 2\n"; + $cm= new mixed2::Child(); +?> +--EXPECT-- +### PHP4 style +string(17) "Child constructor" +string(16) "Base constructor" +### PHP5 style +string(17) "Child constructor" +string(16) "Base constructor" +### Mixed style 1 +string(17) "Child constructor" +string(16) "Base constructor" +### Mixed style 2 +string(17) "Child constructor" +string(16) "Base constructor"
\ No newline at end of file |