PHP.mk документација

forward_static_call_array

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.forward-static-call-array.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.forward-static-call-array.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
forward_static_call_array

Референца за `function.forward-static-call-array.php` со подобрена типографија и навигација.

function.forward-static-call-array.php

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

forward_static_call_arrayCall a callback with an array of parameters, preserving the current called class

= NULL

function forward_static_call_array(callable $callback, array $args): mixed

Повикува кориснички дефинирана функција или метод даден од callback parameter, with arguments passed as an array, similarly to call_user_func_array(). When called from within a method context and calling a method callback, it makes a forwarding call, so static:: inside the method resolves to the same called class as in the caller. This is useful for static method callbacks that should behave like self:: or parent::.

Забелешка:

За разлика од forward_static_call(), this function does not require an active class scope: calling forward_static_call() outside a class throws an Грешка, while this function does not.

Параметри

callback

Функцијата или методот што треба да се повика. Овој параметар може да биде array, со името на класата и методот, или string, со име на функција.

args

Параметрите што треба да се предадат на враќањето, како низа.

Забелешка:

To pass a parameter by reference, the corresponding element in args must be a reference.

Вратени вредности

Враќа резултат од функцијата, или 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 a callback while preserving the current called class
  • call_user_func() - Повикајте ја повратната функција дадена од првиот параметар
  • call_user_func_array() - Повикајте повик со низа од параметри
  • is_callable() - Проверете дали вредноста може да се повика како функција од тековниот опсег

Белешки од корисници 2 забелешки

нино.скопак на gmail.com
пред 10 години
Regarding namespaces:

Be sure to include fully namespaced class path:

<?php
forward_static_call_array(
    array('NAMESPACE\CLASS_NAME', 'STATIC_METHOD'),
    $params
);
israfilov93 на гмаил точка ком
пред 8 години
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());
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.