ReflectionClass меняет имя класса и вызывает фатальную ошибку

0

Получение некоторой серьезной wierdness при использовании отражения, чтобы получить экземпляр класса. Код настолько прост, что я действительно не понимаю, где это происходит, кажется, что отражение меняет имя класса. Так:

$reflect = new ReflectionClass($class);
print_r($reflect);  
ReflectionClass Object
(
  [name] => Db_Table_Data_Binding
)

return $reflect->newInstance(); // fatal error class Db_Table_Binding Not Found 

даже если я завершу его в выражении if, чтобы подтвердить:

if($class === "Db_Table_Data_Binding")
{
   return $reflect->newInstance(); // fatal error class Db_Table_Binding 
}

Не могу понять, что происходит здесь... Любая помощь будет замечательной.

Поэтому я разработал то, что я сделал не так, для тех, кто может наткнуться на это.

class Db_Table_Data_Binding{
   protected $bindTypes = array(
      "integer" => Db_Table_Binding::TYPEINT
   );
}
  • 0
    Есть ли в классе Db_Table_Data_Binding конструктор, который принимает аргументы?
  • 0
    Db_table_Data_Binding ли Db_table_Data_Binding Db_Table_Binding ?
Показать ещё 2 комментария
Теги:
class
reflection
fatal-error

1 ответ

0

Вероятно, потому, что конструктор вашего класса использует класс Db_Table_Binding и находится в другом пространстве имен, и ваш автозагрузчик не может найти определение класса.

Попробуйте в начале вашего сценария написать:

use NamespeceWhereUGotThisClass\Db_Table_Binding;
  • 0
    Я не использовал / не использую пространство имен в PHP. Я ссылался на константу класса из db_table_binding и пытался назначить ее внутри массива свойств в моем классе db_table_data_binding. Картофельный ход.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню