Annotation of embedaddon/php/Zend/tests/bug29210.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #29210 (Function is_callable does not support private and protected methods)
! 3: --FILE--
! 4: <?php
! 5: class test_class {
! 6: private function test_func1() {
! 7: echo "test_func1\n";
! 8: }
! 9: protected function test_func2() {
! 10: echo "test_func2\n";
! 11: }
! 12: static private function test_func3() {
! 13: echo "test_func3\n";
! 14: }
! 15: static protected function test_func4() {
! 16: echo "test_func4\n";
! 17: }
! 18: function test() {
! 19: if (is_callable(array($this,'test_func1'))) {
! 20: $this->test_func1();
! 21: } else {
! 22: echo "test_func1 isn't callable from inside\n";
! 23: }
! 24: if (is_callable(array($this,'test_func2'))) {
! 25: $this->test_func2();
! 26: } else {
! 27: echo "test_func2 isn't callable from inside\n";
! 28: }
! 29: if (is_callable(array('test_class','test_func3'))) {
! 30: test_class::test_func3();
! 31: } else {
! 32: echo "test_func3 isn't callable from inside\n";
! 33: }
! 34: if (is_callable(array('test_class','test_func4'))) {
! 35: test_class::test_func4();
! 36: } else {
! 37: echo "test_func4 isn't callable from inside\n";
! 38: }
! 39: }
! 40: }
! 41:
! 42: class foo extends test_class {
! 43: function test() {
! 44: if (is_callable(array($this,'test_func1'))) {
! 45: $this->test_func1();
! 46: } else {
! 47: echo "test_func1 isn't callable from child\n";
! 48: }
! 49: if (is_callable(array($this,'test_func2'))) {
! 50: $this->test_func2();
! 51: } else {
! 52: echo "test_func2 isn't callable from child\n";
! 53: }
! 54: if (is_callable(array('test_class','test_func3'))) {
! 55: test_class::test_func3();
! 56: } else {
! 57: echo "test_func3 isn't callable from child\n";
! 58: }
! 59: if (is_callable(array('test_class','test_func4'))) {
! 60: test_class::test_func4();
! 61: } else {
! 62: echo "test_func4 isn't callable from child\n";
! 63: }
! 64: }
! 65: }
! 66:
! 67: $object = new test_class;
! 68: $object->test();
! 69: if (is_callable(array($object,'test_func1'))) {
! 70: $object->test_func1();
! 71: } else {
! 72: echo "test_func1 isn't callable from outside\n";
! 73: }
! 74: if (is_callable(array($object,'test_func2'))) {
! 75: $object->test_func2();
! 76: } else {
! 77: echo "test_func2 isn't callable from outside\n";
! 78: }
! 79: if (is_callable(array('test_class','test_func3'))) {
! 80: test_class::test_func3();
! 81: } else {
! 82: echo "test_func3 isn't callable from outside\n";
! 83: }
! 84: if (is_callable(array('test_class','test_func4'))) {
! 85: test_class::test_func4();
! 86: } else {
! 87: echo "test_func4 isn't callable from outside\n";
! 88: }
! 89: $object = new foo();
! 90: $object->test();
! 91: ?>
! 92: --EXPECTF--
! 93: test_func1
! 94: test_func2
! 95: test_func3
! 96: test_func4
! 97: test_func1 isn't callable from outside
! 98: test_func2 isn't callable from outside
! 99: test_func3 isn't callable from outside
! 100: test_func4 isn't callable from outside
! 101: test_func1 isn't callable from child
! 102: test_func2
! 103: test_func3 isn't callable from child
! 104: test_func4
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>