Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

ReflectionClass

Сведения о классе: его методы, свойства, атрибуты.

Синтаксис

new ReflectionClass(object|string $objectOrClass)

Параметры

ПараметрТипОписание
$objectOrClassobject|stringОбъект или имя класса.

Возвращаемое значение

ReflectionClassОбъект с методами `getShortName()`, `getMethods()`, `getProperties()`, `getAttributes()`, `newInstanceArgs()`.

Примеры

Что есть у класса:

<?php
 
class Product
{
    public function __construct(public string $title, protected int $price) {}
 
    public function price(): int
    {
        return $this->price;
    }
}
 
$class = new ReflectionClass(Product::class);
 
echo $class->getShortName(), "\n";
echo implode(', ', array_map(fn ($p) => $p->getName(), $class->getProperties())), "\n";
echo implode(', ', array_map(fn ($m) => $m->getName(), $class->getMethods()));

Результат:

Product
title, price
__construct, price

Примечания

На отражении построены фреймворки: так они находят атрибуты маршрутов и узнают, какие зависимости передать в конструктор. В обычном коде оно нужно редко.

См. также

  • get_class_methods — Возвращает имена методов класса.
  • class_exists — Проверяет, определён ли класс.
  • get_class — Возвращает имя класса объекта.

В учебнике

  • Современный синтаксис — Возможности PHP 8 — оператор ?->, деструктуризация массивов, оператор распаковки, readonly-классы, ссылка на функцию и атрибуты.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.