summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-07-20 10:39:43 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-07-20 10:39:43 +0200
commitfbbcf82ab77c918b29dd2d39135d680cada3f581 (patch)
tree48e018c81aeadf8294ecb1c2432a026e84027775 /tests
parentb466e8b7546352f7c2ac7d166d83131d3dcd7b2f (diff)
downloadphp-git-fbbcf82ab77c918b29dd2d39135d680cada3f581.tar.gz
Unify static/non-static check for magic methods
And promote it to be fatal.
Diffstat (limited to 'tests')
-rw-r--r--tests/classes/__call_007.phpt76
1 files changed, 0 insertions, 76 deletions
diff --git a/tests/classes/__call_007.phpt b/tests/classes/__call_007.phpt
deleted file mode 100644
index e2edb8a530..0000000000
--- a/tests/classes/__call_007.phpt
+++ /dev/null
@@ -1,76 +0,0 @@
---TEST--
-Ensure exceptions are handled properly when thrown in a statically declared __call.
---FILE--
-<?php
-class A {
- static function __call($strMethod, $arrArgs) {
- @var_dump($this);
- throw new Exception;
- echo "You should not see this";
- }
- function test() {
- A::unknownCalledWithSRO(1,2,3);
- }
-}
-
-class B extends A {
- function test() {
- B::unknownCalledWithSROFromChild(1,2,3);
- }
-}
-
-$a = new A();
-
-echo "---> Invoke __call via simple method call.\n";
-try {
- $a->unknown();
-} catch (Exception $e) {
- echo "Exception caught OK; continuing.\n";
-}
-
-echo "\n\n---> Invoke __call via scope resolution operator within instance.\n";
-try {
- $a->test();
-} catch (Exception $e) {
- echo "Exception caught OK; continuing.\n";
-}
-
-echo "\n\n---> Invoke __call via scope resolution operator within child instance.\n";
-$b = new B();
-try {
- $b->test();
-} catch (Exception $e) {
- echo "Exception caught OK; continuing.\n";
-}
-
-echo "\n\n---> Invoke __call via callback.\n";
-try {
- call_user_func(array($b, 'unknownCallback'), 1,2,3);
-} catch (Exception $e) {
- echo "Exception caught OK; continuing.\n";
-}
-?>
---EXPECTF--
-Warning: The magic method A::__call() cannot be static in %s on line 3
----> Invoke __call via simple method call.
-object(A)#1 (0) {
-}
-Exception caught OK; continuing.
-
-
----> Invoke __call via scope resolution operator within instance.
-object(A)#1 (0) {
-}
-Exception caught OK; continuing.
-
-
----> Invoke __call via scope resolution operator within child instance.
-object(B)#2 (0) {
-}
-Exception caught OK; continuing.
-
-
----> Invoke __call via callback.
-object(B)#2 (0) {
-}
-Exception caught OK; continuing.