summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
Diffstat (limited to 'Zend')
-rw-r--r--Zend/tests/bug29210.phpt10
-rwxr-xr-xZend/tests/bug32290.phpt101
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===