summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-04-19 18:21:58 +0000
committerMarcus Boerger <helly@php.net>2003-04-19 18:21:58 +0000
commitdc27fbd90f5bc67c968bcf71b6c0481e6d59ba9d (patch)
treea8b8d6a10aebb026e2fbe0440b6e1abf76a54145 /tests
parent6bc4ce43d0fe4878fd38a661100fac81178dc476 (diff)
downloadphp-git-dc27fbd90f5bc67c968bcf71b6c0481e6d59ba9d.tar.gz
Add a test for ctor precedence
Diffstat (limited to 'tests')
-rwxr-xr-xtests/classes/inheritance_002.phpt87
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