summaryrefslogtreecommitdiff
path: root/Zend/tests/bug29210.phpt
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-04-27 15:45:36 +0000
committerDmitry Stogov <dmitry@php.net>2005-04-27 15:45:36 +0000
commitc81db6bc5606425e4834a57afa9d06800b837b72 (patch)
tree5195286ae622b51d1f1a1bd9b62b8dcab4f628bc /Zend/tests/bug29210.phpt
parentabb07db4c6359d15a0ab9d8c8735c5a93ac429a6 (diff)
downloadphp-git-c81db6bc5606425e4834a57afa9d06800b837b72.tar.gz
Fixed bug #29210 (Function: is_callable - no support for private and protected classes)
Diffstat (limited to 'Zend/tests/bug29210.phpt')
-rw-r--r--Zend/tests/bug29210.phpt104
1 files changed, 104 insertions, 0 deletions
diff --git a/Zend/tests/bug29210.phpt b/Zend/tests/bug29210.phpt
new file mode 100644
index 0000000000..294685499c
--- /dev/null
+++ b/Zend/tests/bug29210.phpt
@@ -0,0 +1,104 @@
+--TEST--
+Bug #29210 Function: is_callable - no support for private and protected classes
+--FILE--
+<?php
+class test_class {
+ private function test_func1() {
+ echo "test_func1\n";
+ }
+ protected function test_func2() {
+ echo "test_func2\n";
+ }
+ static private function test_func3() {
+ echo "test_func3\n";
+ }
+ static protected function test_func4() {
+ echo "test_func4\n";
+ }
+ function test() {
+ if (is_callable(array($this,'test_func1'))) {
+ $this->test_func1();
+ } else {
+ echo "test_func1 isn't callable from inside\n";
+ }
+ if (is_callable(array($this,'test_func2'))) {
+ $this->test_func2();
+ } else {
+ echo "test_func2 isn't callable from inside\n";
+ }
+ if (is_callable(array('test_class','test_func3'))) {
+ test_class::test_func3();
+ } else {
+ echo "test_func3 isn't callable from inside\n";
+ }
+ if (is_callable(array('test_class','test_func4'))) {
+ test_class::test_func4();
+ } else {
+ echo "test_func4 isn't callable from inside\n";
+ }
+ }
+}
+
+class foo extends test_class {
+ function test() {
+ if (is_callable(array($this,'test_func1'))) {
+ $this->test_func1();
+ } else {
+ echo "test_func1 isn't callable from child\n";
+ }
+ if (is_callable(array($this,'test_func2'))) {
+ $this->test_func2();
+ } else {
+ echo "test_func2 isn't callable from child\n";
+ }
+ if (is_callable(array('test_class','test_func3'))) {
+ test_class::test_func3();
+ } else {
+ echo "test_func3 isn't callable from child\n";
+ }
+ if (is_callable(array('test_class','test_func4'))) {
+ test_class::test_func4();
+ } else {
+ echo "test_func4 isn't callable from child\n";
+ }
+ }
+}
+
+$object = new test_class;
+$object->test();
+if (is_callable(array($object,'test_func1'))) {
+ $object->test_func1();
+} else {
+ echo "test_func1 isn't callable from outside\n";
+}
+if (is_callable(array($object,'test_func2'))) {
+ $object->test_func2();
+} else {
+ echo "test_func2 isn't callable from outside\n";
+}
+if (is_callable(array('test_class','test_func3'))) {
+ test_class::test_func3();
+} else {
+ echo "test_func3 isn't callable from outside\n";
+}
+if (is_callable(array('test_class','test_func4'))) {
+ test_class::test_func4();
+} else {
+ echo "test_func4 isn't callable from outside\n";
+}
+$object = new foo();
+$object->test();
+?>
+--EXPECT--
+test_func1
+test_func2
+test_func3
+test_func4
+test_func1 isn't callable from outside
+test_func2 isn't callable from outside
+test_func3 isn't callable from outside
+test_func4 isn't callable from outside
+test_func1 isn't callable from child
+test_func2
+test_func3 isn't callable from child
+test_func4