summaryrefslogtreecommitdiff
path: root/Zend/tests/bug22725.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/tests/bug22725.phpt')
-rwxr-xr-xZend/tests/bug22725.phpt31
1 files changed, 31 insertions, 0 deletions
diff --git a/Zend/tests/bug22725.phpt b/Zend/tests/bug22725.phpt
new file mode 100755
index 0000000000..aecb0ce486
--- /dev/null
+++ b/Zend/tests/bug22725.phpt
@@ -0,0 +1,31 @@
+--TEST--
+A derived class can call a parent's protected method that calls a private method
+--SKIPIF--
+<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
+--FILE--
+<?php
+class Foo {
+ private function aPrivateMethod() {
+ echo "Foo::aPrivateMethod() called.\n";
+ }
+
+ protected function aProtectedMethod() {
+ echo "Foo::aProtectedMethod() called.\n";
+ $this->aPrivateMethod();
+ }
+}
+
+class Bar extends Foo {
+ public function aPublicMethod() {
+ echo "Bar::aPublicMethod() called.\n";
+ $this->aProtectedMethod();
+ }
+}
+
+$o = new Bar;
+$o->aPublicMethod();
+?>
+--EXPECT--
+Bar::aPublicMethod() called.
+Foo::aProtectedMethod() called.
+Foo::aPrivateMethod() called.