diff options
Diffstat (limited to 'Zend')
| -rw-r--r-- | Zend/tests/bug29210.phpt | 10 | ||||
| -rwxr-xr-x | Zend/tests/bug32290.phpt | 101 |
2 files changed, 105 insertions, 6 deletions
diff --git a/Zend/tests/bug29210.phpt b/Zend/tests/bug29210.phpt index 294685499c..16e6e6db16 100644 --- a/Zend/tests/bug29210.phpt +++ b/Zend/tests/bug29210.phpt @@ -89,10 +89,14 @@ if (is_callable(array('test_class','test_func4'))) { $object = new foo(); $object->test(); ?> ---EXPECT-- +--EXPECTF-- test_func1 test_func2 + +Strict Standards: Non-static method test_class::test_func3() canot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d test_func3 + +Strict Standards: Non-static method test_class::test_func4() canot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d test_func4 test_func1 isn't callable from outside test_func2 isn't callable from outside @@ -100,5 +104,9 @@ test_func3 isn't callable from outside test_func4 isn't callable from outside test_func1 isn't callable from child test_func2 + +Strict Standards: Non-static method test_class::test_func3() canot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d test_func3 isn't callable from child + +Strict Standards: Non-static method test_class::test_func4() canot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d test_func4 diff --git a/Zend/tests/bug32290.phpt b/Zend/tests/bug32290.phpt index f754275ccf..6038da54ba 100755 --- a/Zend/tests/bug32290.phpt +++ b/Zend/tests/bug32290.phpt @@ -7,7 +7,31 @@ class TestA { public function doSomething($i) { - echo __METHOD__ . "($this)\n"; + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingThis($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingParent($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public function doSomethingParentThis($i) + { + echo __METHOD__ . "($i)\n"; + return --$i; + } + + public static function doSomethingStatic($i) + { + echo __METHOD__ . "($i)\n"; return --$i; } } @@ -16,20 +40,87 @@ class TestB extends TestA { public function doSomething($i) { - echo __METHOD__ . "($this)\n"; + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array("TestA", "doSomething"), array($i)); + } + + public function doSomethingThis($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array($this, "TestA::doSomethingThis"), array($i)); + } + + public function doSomethingParent($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array("parent", "doSomethingParent"), array($i)); + } + + public function doSomethingParentThis($i) + { + echo __METHOD__ . "($i)\n"; $i++; if ($i >= 5) return 5; - return call_user_func_array(array("TestA","doSomething"), array($i)); + return call_user_func_array(array($this, "parent::doSomethingParentThis"), array($i)); + } + + public static function doSomethingStatic($i) + { + echo __METHOD__ . "($i)\n"; + $i++; + if ($i >= 5) return 5; + return call_user_func_array(array("TestA", "doSomethingStatic"), array($i)); } } $x = new TestB(); +echo "===A===\n"; var_dump($x->doSomething(1)); +echo "\n===B===\n"; +var_dump($x->doSomethingThis(1)); +echo "\n===C===\n"; +var_dump($x->doSomethingParent(1)); +echo "\n===D===\n"; +var_dump($x->doSomethingParentThis(1)); +echo "\n===E===\n"; +var_dump($x->doSomethingStatic(1)); ?> ===DONE=== +<?php exit(0); ?> --EXPECTF-- -TestB::doSomething(Object id #%d) -TestA::doSomething(Object id #%d) +===A=== +TestB::doSomething(1) + +Strict Standards: Non-static method TestA::doSomething() canot be called statically, assuming $this from compatible context TestB in %sbug32290.php on line %d +TestA::doSomething(2) +int(1) + +===B=== +TestB::doSomethingThis(1) +TestA::doSomethingThis(2) +int(1) + +===C=== +TestB::doSomethingParent(1) + +Strict Standards: Non-static method TestA::doSomethingParent() canot be called statically, assuming $this from compatible context TestB in %sbug32290.php on line %d +TestA::doSomethingParent(2) +int(1) + +===D=== +TestB::doSomethingParentThis(1) +TestA::doSomethingParentThis(2) +int(1) + +===E=== +TestB::doSomethingStatic(1) +TestA::doSomethingStatic(2) int(1) ===DONE=== |
