mirror of
https://github.com/php/php-src.git
synced 2026-04-29 11:13:36 +02:00
- New tests
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
--TEST--
|
||||
Bug #45186 (__call depends on __callstatic in class scope)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class bar {
|
||||
public function __call($a, $b) {
|
||||
print "__call:\n";
|
||||
var_dump($a);
|
||||
}
|
||||
static public function __callstatic($a, $b) {
|
||||
print "__callstatic:\n";
|
||||
var_dump($a);
|
||||
}
|
||||
public function test() {
|
||||
self::ABC();
|
||||
bar::ABC();
|
||||
call_user_func(array('BAR', 'xyz'));
|
||||
call_user_func('BAR::www');
|
||||
call_user_func(array('self', 'y'));
|
||||
call_user_func('self::y');
|
||||
}
|
||||
static function x() {
|
||||
print "ok\n";
|
||||
}
|
||||
}
|
||||
|
||||
$x = new bar;
|
||||
|
||||
$x->test();
|
||||
|
||||
call_user_func(array('BAR','x'));
|
||||
call_user_func('BAR::www');
|
||||
call_user_func('self::y');
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
__call:
|
||||
string(3) "ABC"
|
||||
__call:
|
||||
string(3) "ABC"
|
||||
__call:
|
||||
string(3) "xyz"
|
||||
__call:
|
||||
string(3) "www"
|
||||
__call:
|
||||
string(1) "y"
|
||||
__call:
|
||||
string(1) "y"
|
||||
ok
|
||||
__callstatic:
|
||||
string(3) "www"
|
||||
|
||||
Fatal error: Cannot access self:: when no class scope is active in %s on line %d
|
||||
@@ -0,0 +1,50 @@
|
||||
--TEST--
|
||||
Bug #45186.2 (__call depends on __callstatic in class scope)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class bar {
|
||||
public function __call($a, $b) {
|
||||
print "__call:\n";
|
||||
var_dump($a);
|
||||
}
|
||||
public function test() {
|
||||
self::ABC();
|
||||
bar::ABC();
|
||||
call_user_func(array('BAR', 'xyz'));
|
||||
call_user_func('BAR::www');
|
||||
call_user_func(array('self', 'y'));
|
||||
call_user_func('self::y');
|
||||
}
|
||||
static function x() {
|
||||
print "ok\n";
|
||||
}
|
||||
}
|
||||
|
||||
$x = new bar;
|
||||
|
||||
$x->test();
|
||||
|
||||
call_user_func(array('BAR','x'));
|
||||
call_user_func('BAR::www');
|
||||
call_user_func('self::y');
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
__call:
|
||||
string(3) "ABC"
|
||||
__call:
|
||||
string(3) "ABC"
|
||||
__call:
|
||||
string(3) "xyz"
|
||||
__call:
|
||||
string(3) "www"
|
||||
__call:
|
||||
string(1) "y"
|
||||
__call:
|
||||
string(1) "y"
|
||||
ok
|
||||
|
||||
Warning: call_user_func() expects parameter 1 to be a valid callback, class 'bar' does not have a method 'www' in %s on line %d
|
||||
|
||||
Fatal error: Cannot access self:: when no class scope is active in %s on line %d
|
||||
Reference in New Issue
Block a user