1--TEST--
2Indirect call with empty class and/or method name.
3--FILE--
4<?php
5class TestClass
6{
7    public static function __callStatic($method, array $args)
8    {
9        var_dump($method);
10    }
11}
12
13// Test call using array syntax
14$callback = ['TestClass', ''];
15$callback();
16
17// Test call using Class::method syntax.
18$callback = 'TestClass::';
19$callback();
20
21// Test array syntax with empty class name
22$callback = ['', 'method'];
23try {
24    $callback();
25} catch (Error $e) {
26    echo $e->getMessage() . "\n";
27}
28
29// Test Class::method syntax with empty class name
30$callback = '::method';
31try {
32    $callback();
33} catch (Error $e) {
34    echo $e->getMessage() . "\n";
35}
36
37// Test array syntax with empty class and method name
38$callback = ['', ''];
39try {
40    $callback();
41} catch (Error $e) {
42    echo $e->getMessage() . "\n";
43}
44
45// Test Class::method syntax with empty class and method name
46$callback = '::';
47try {
48    $callback();
49} catch (Error $e) {
50    echo $e->getMessage() . "\n";
51}
52
53// Test string ending in single colon
54$callback = 'Class:';
55try {
56    $callback();
57} catch (Error $e) {
58    echo $e->getMessage() . "\n";
59}
60
61// Test string beginning in single colon
62$callback = ':method';
63try {
64    $callback();
65} catch (Error $e) {
66    echo $e->getMessage() . "\n";
67}
68
69// Test single colon
70$callback = ':';
71try {
72    $callback();
73} catch (Error $e) {
74    echo $e->getMessage() . "\n";
75}
76?>
77--EXPECT--
78string(0) ""
79string(0) ""
80Class "" not found
81Class "" not found
82Class "" not found
83Class "" not found
84Call to undefined function Class:()
85Call to undefined function :method()
86Call to undefined function :()
87