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

ReflectionMethod::invoke

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

reflectionmethod.invoke.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека reflectionmethod.invoke.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
ReflectionMethod::invoke

Референца за `reflectionmethod.invoke.php` со подобрена типографија и навигација.

reflectionmethod.invoke.php

ReflectionMethod::invoke

класата mysqli_driver

ReflectionMethod::invokeПовикај

= NULL

public function ReflectionMethod::invoke(?object $object, mixed ...$args): mixed

Повикува рефлектиран метод.

Параметри

object

Објектот на кој ќе се повика методот. За статички методи, поминете null на овој параметар.

args

Нула или повеќе параметри што ќе се предадат на методот. Прифаќа променлив број на параметри што се предаваат на методот.

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

Враќа резултат од методот.

Errors/Exceptions

А ReflectionException ако object параметарот не содржи инстанца на класата во која е деклариран овој метод.

А ReflectionException ако повикувањето на методот не успеа.

Примери

Пример #1 Овозможува повикување на заштитен или приватен метод преку example

<?php
class HelloWorld {

public function
sayHelloTo($name) {
return
'Hello ' . $name;
}

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo
$reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Hello Mike

Белешки

Забелешка:

Овозможува повикување на заштитен или приватен метод преку не може да се користи кога се очекуваат референтни параметри. (PHP 5 >= 5.1.2, PHP 7, PHP 8) мора да се користи наместо тоа (предавање референци во списокот со аргументи).

Види Исто така

Белешки од корисници 3 белешки

rojaro на gmail точка com
пред 15 години
Note: If you want to invoke protected or private methods, you'll first have to make them accessible using the setAccessible() method (see http://php.net/reflectionmethod.setaccessible ).
димитриј на ремеров точка ру
пред 13 години
This method can be used to call a overwritten public method of a parent class on an child instance
The following code will output "A":

<?php

class A
{
    public function foo()
    {
        return __CLASS__;
    }
}

class B extends A
{
    public function foo()
    {
        return __CLASS__;
    }
}

$b = new B();

$reflection = new ReflectionObject($b);

$parentReflection = $reflection->getParentClass();

$parentFooReflection = $parentReflection->getMethod('foo');

$data = $parentFooReflection->invoke($b);

echo $data;

?>
темпларгреи на вп точка пл
пред 14 години
Seems that Reflection doesn`t resolve late static bindings - var_dump will show "string 'a' (length=1)".

<?php
class ParentClass { protected static $a = 'a'; static public function init() { return static::$a; } }
class ChildClass extends ParentClass { protected static $a = 'b'; }
    
$r = new ReflectionClass('ChildClass');
var_dump($r->getMethod('init')->invoke(null));
?>
На оваа страница

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

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

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

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

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