Regarding namespaces:
Be sure to include fully namespaced class path:
<?php
forward_static_call_array(
array('NAMESPACE\CLASS_NAME', 'STATIC_METHOD'),
$params
);forward_static_call_array
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
forward_static_call_array
Референца за `function.forward-static-call-array.php` со подобрена типографија и навигација.
forward_static_call_array
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
forward_static_call_array — Повикај статичен метод и поминете ги аргументите како низа
= NULL
Повикува кориснички дефинирана функција или метод даден од callback
параметар. Оваа функција мора да се повика во контекст на метод, не може да се користи надвор од класа. Таа користи метод на класа или некој од нејзините родители. Покрај тоа, статичките својства или методи може да се пребришат преку. Сите аргументи на проследениот метод се поминуваат како вредности, и како низа, слично на call_user_func_array().
Параметри
callback-
Функцијата или методот што треба да се повика. Овој параметар може да биде array, со името на класата и методот, или string, со име на функција.
args-
Еден параметар, кој ги собира сите параметри на методот во една низа.
Забелешка:
Забележете дека параметрите за forward_static_call_array() не се предаваат со референца.
Вратени вредности
Враќа резултат од функцијата, или false при грешка.
Примери
Пример #1 forward_static_call_array() example
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "\n";
forward_static_call_array(array('A', 'test'), array('more', 'args'));
forward_static_call_array( 'test', array('other', 'args'));
}
}
B::test('foo');
function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
B B more,args C other,args
Види Исто така
- forward_static_call() - Повикај статичен метод
- call_user_func() - Повикајте ја повратната функција дадена од првиот параметар
- call_user_func_array() - Повикајте повик со низа од параметри
- is_callable() - Проверете дали вредноста може да се повика како функција од тековниот опсег
Белешки од корисници 2 забелешки
one of academic example, when forward_static_call() can be useful
<?php
class A
{
public static function test()
{
var_dump('we were here');
return static::class;
}
}
class B extends A
{
public static function test()
{
return self::class;
}
}
class C extends B
{
public static function test()
{
$grandParent = get_parent_class(parent::class); // $grandParent is A
return forward_static_call([$grandParent, __FUNCTION__]); // calls A::test()
}
}
// prints
// string(12) "we were here"
// string(1) "C"
var_dump(C::test());