Экземпляр со строковым именем класса вместо создания экземпляра класса - PullRequest
0 голосов
/ 27 мая 2019

Можно ли доказать, является ли класс экземпляром определенного класса, не генерируя новый объект?

Например, у меня есть массив с именами классов:

$classNames = [
    'TestClass',
    'ExampleClass',
    'OtherClass'
];

Теперь я хочу доказать, являются ли эти 3 класса экземпляром основного класса (например, «Классы»).

В цикле это должно выглядеть так:

foreach($classNames as $className)
{
   if($className instanceof Classes)
   {
      // some code
   }
}

Но это не работает, потому что сначала я должен создать экземпляры таких классов, как TestClass ...

Есть ли альтернатива? Я хочу проверить, являются ли классы в массиве экземпляром 'Classes'.

1 Ответ

2 голосов
/ 27 мая 2019

Вы можете использовать is_subclass_of, чтобы выполнить эту проверку:

foreach($classNames as $className)
{
   if(is_subclass_of($className, 'Classes')
   {
      // some code
   }
}
...