(PHP 5, PHP 7, PHP 8)
ReflectionClass::isInstantiable — Проверяет, возможно ли создать экземпляр класса
Метод проверяет, возможно ли создать экземпляр класса.
Сигнатура функции не содержит параметров.
Метод возвращает значение true, если возможно создать экземпляр класса, иначе возвращает значение false.
Пример #1 Пример проверки доступности инстанцирования класса методом ReflectionClass::isInstantiable()
<?php
class C {}
interface iface
{
function f1();
}
class ifaceImpl implements iface
{
function f1() {}
}
abstract class abstractClass
{
function f1() {}
abstract function f2();
}
class D extends abstractClass
{
function f2() {}
}
trait T
{
function f1() {}
}
class privateConstructor
{
private function __construct() {}
}
$classes = array(
"C",
"iface",
"ifaceImpl",
"abstractClass",
"D",
"T",
"privateConstructor",
);
foreach ($classes as $class) {
$reflectionClass = new ReflectionClass($class);
echo "Возможно ли создать экземпляр класса $class? ";
var_dump($reflectionClass->isInstantiable());
}
?>Результат выполнения приведённого примера:
Возможно ли создать экземпляр класса C? bool(true) Возможно ли создать экземпляр класса iface? bool(false) Возможно ли создать экземпляр класса ifaceImpl? bool(true) Возможно ли создать экземпляр класса abstractClass? bool(false) Возможно ли создать экземпляр класса D? bool(true) Возможно ли создать экземпляр класса T? bool(false) Возможно ли создать экземпляр класса privateConstructor? bool(false)