From: Marcus Boerger Date: Fri, 16 Dec 2005 23:11:00 +0000 (+0000) Subject: - MFB X-Git-Tag: RELEASE_1_0_4~361 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10e69db3fa23cee8a6a898e0d15e27335d29fb88;p=php - MFB --- 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 bfd3f518ed..6038da54ba 100755 --- a/Zend/tests/bug32290.phpt +++ b/Zend/tests/bug32290.phpt @@ -3,17 +3,35 @@ Bug #32290 (calling call_user_func_array() ends in infinite loop within child cl --FILE-- = 5) return 5; - return call_user_func_array(array("TestA","doSomething"), array($i)); + 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($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=== + --EXPECTF-- -string(54) "Object of class TestB could not be converted to string" -TestB::doSomething() -string(54) "Object of class TestB could not be converted to string" -TestA::doSomething() +===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===