diff options
Diffstat (limited to 'tests/classes/inheritance_002.phpt')
-rw-r--r-- | tests/classes/inheritance_002.phpt | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/classes/inheritance_002.phpt b/tests/classes/inheritance_002.phpt new file mode 100644 index 0000000..cca528e --- /dev/null +++ b/tests/classes/inheritance_002.phpt @@ -0,0 +1,71 @@ +--TEST-- +ZE2 Constructor precedence +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php +class Base_php4 { + function Base_php4() { + var_dump('Base constructor'); + } +} + +class Child_php4 extends Base_php4 { + function Child_php4() { + var_dump('Child constructor'); + parent::Base_php4(); + } +} + +class Base_php5 { + function __construct() { + var_dump('Base constructor'); + } + } + +class Child_php5 extends Base_php5 { + function __construct() { + var_dump('Child constructor'); + parent::__construct(); + } + } + +class Child_mx1 extends Base_php4 { + function __construct() { + var_dump('Child constructor'); + parent::Base_php4(); + } +} + +class Child_mx2 extends Base_php5 { + function Child_mx2() { + var_dump('Child constructor'); + parent::__construct(); + } +} + +echo "### PHP 4 style\n"; +$c4= new Child_php4(); + +echo "### PHP 5 style\n"; +$c5= new Child_php5(); + +echo "### Mixed style 1\n"; +$cm= new Child_mx1(); + +echo "### Mixed style 2\n"; +$cm= new Child_mx2(); +?> +--EXPECT-- +### PHP 4 style +string(17) "Child constructor" +string(16) "Base constructor" +### PHP 5 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" |