summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/classes/private_redeclare.phpt38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/classes/private_redeclare.phpt b/tests/classes/private_redeclare.phpt
new file mode 100755
index 0000000000..e3061f1136
--- /dev/null
+++ b/tests/classes/private_redeclare.phpt
@@ -0,0 +1,38 @@
+--TEST--
+ZE2 A derived class does not know anything about inherited private methods
+--FILE--
+<?php
+class base {
+ private function show() {
+ echo "base\n";
+ }
+ function test() {
+ $this->show();
+ }
+}
+
+$t = new base();
+$t->test();
+
+class derived extends base {
+ function show() {
+ echo "derived\n";
+ }
+ function test() {
+ echo "test\n";
+ $this->show();
+ parent::test();
+ parent::show();
+ }
+}
+
+$t = new derived();
+$t->test();
+?>
+--EXPECTF--
+base
+test
+derived
+base
+
+Fatal error: Call to private method base::show() from context 'derived' in %s on line %d