]> granicus.if.org Git - php/commitdiff
Add a test for ctor precedence
authorMarcus Boerger <helly@php.net>
Sat, 19 Apr 2003 18:21:58 +0000 (18:21 +0000)
committerMarcus Boerger <helly@php.net>
Sat, 19 Apr 2003 18:21:58 +0000 (18:21 +0000)
tests/classes/inheritance_002.phpt [new file with mode: 0755]

diff --git a/tests/classes/inheritance_002.phpt b/tests/classes/inheritance_002.phpt
new file mode 100755 (executable)
index 0000000..4135892
--- /dev/null
@@ -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