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

ReflectionMethod

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

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

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

class.reflectionmethod.php

Класата ReflectionMethod

класата mysqli_driver

Вовед

На ReflectionMethod класата известува информации за метод.

Синопсис на класата

class ReflectionMethod extends ReflectionFunctionAbstract {
/* Константи */
public const int IS_STATIC;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_FINAL;
/* Својства */
public string $class;
/* Наследени својства */
public string $name;
/* Методи */
public __construct(object|string $objectOrMethod, string $method)
public __construct(string $classMethod)
public static createFromMethodName(string $method): static
public static export(string $class, string $name, bool $return = false): string
public getModifiers(): int
public hasPrototype(): bool
public invoke(?object $object, mixed ...$args): mixed
public invokeArgs(?object $object, array $args): mixed
public isAbstract(): bool
public isDestructor(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public __toString(): string
/* Наследени методи */
}

Својства

name

Име на метод

class

Име на класа

Претходно дефинирани константи

Модификатори на ReflectionMethod

ReflectionMethod::IS_STATIC int

Индицира дека методот е статичен. Пред PHP 7.4.0, вредноста беше 1.

ReflectionMethod::IS_PUBLIC int

Индицира дека методот е јавен. Пред PHP 7.4.0, вредноста беше 256.

ReflectionMethod::IS_PROTECTED int

Индицира дека методот е заштитен. Пред PHP 7.4.0, вредноста беше 512.

ReflectionMethod::IS_PRIVATE int

Индицира дека методот е приватен. Пред PHP 7.4.0, вредноста беше 1024.

ReflectionMethod::IS_ABSTRACT int

Индицира дека методот е апстрактен. Пред PHP 7.4.0, вредноста беше 2.

ReflectionMethod::IS_FINAL int

Индицира дека методот е финален. Пред PHP 7.4.0, вредноста беше 4.

Забелешка:

Вредностите на овие константи може да се променат помеѓу верзиите на PHP. Се препорачува секогаш да ги користите константите и да не се потпирате директно на вредностите.

Дневник на промени

Верзија = NULL
8.4.0 Константите на класата сега се типизирани.
8.0.0 ReflectionMethod::export() Враќа ODBC резултат објект ако SQL командата беше успешно извршена, или

Содржина

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

webseiten dot designer at googlemail dot com
пред 14 години
Note that the public member $class contains the name of the class in which the method has been defined:

<?php
class A {public function __construct() {}}
class B extends A {}

$method = new ReflectionMethod('B', '__construct');
echo $method->class; // prints 'A'
?>
Анонимен
пред 5 години
We can make a "Automatic dependenci injector" in classes when her constructors depends other classes (with type hint).

<?php

class Dependence1 {
    function foo() {
        echo "foo";
    }
}

class Dependence2 {
    function foo2() {
        echo "foo2";
    }
}

final class myClass
{
    private $dep1;
    private $dep2;

    public function __construct(
        Dependence1 $dependence1, 
        Dependence2 $dependence2
    )
    {
        $this->dep1 = $dependence1;
        $this->dep2 = $dependence2;        
    }
    
}

// Automatic dependence injection (CLASSES)

$constructor = new ReflectionMethod(myClass::class, '__construct');
$parameters = $constructor->getParameters();

$dependences = [];
foreach ($parameters as $parameter) {
    $dependenceClass = (string) $parameter->getType();
    $dependences[] = new $dependenceClass();
}

$instance = new myClass(...$dependences);
var_dump($instance);

?>

Results in: 

object(myClass)#6 (2) {
  ["dep1":"myClass":private]=>
  object(Dependence1)#4 (0) {
  }
  ["dep2":"myClass":private]=>
  object(Dependence2)#5 (0) {
  }
}
На оваа страница

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

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

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

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

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