123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- --TEST--
- Bug #29210 (Function is_callable does not support private and protected methods)
- --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
|