Получение некоторой серьезной 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
);
}
Вероятно, потому, что конструктор вашего класса использует класс Db_Table_Binding и находится в другом пространстве имен, и ваш автозагрузчик не может найти определение класса.
Попробуйте в начале вашего сценария написать:
use NamespeceWhereUGotThisClass\Db_Table_Binding;
Db_Table_Data_Binding
конструктор, который принимает аргументы?Db_table_Data_Binding
лиDb_table_Data_Binding
Db_Table_Binding
?