我有不同的类,我有不同的属性。现在我想在运行时实例化这些类。请查看我的示例。 谢谢你的帮助。
class costumers
{
$ Name;
...
}
class users
{
$ Username;
...
}
class db_helper{
...
public function select (object $table, $columns, $limit, $offset) {
// Instance the object like
$out = new typeof ($table);
}
}
答案 0 :(得分:1)
我认为你要做的是创建一个与$table
对象相同的类的新实例?然后使用get_class()
函数很简单:
class db_helper{
...
public function select (object $table, $columns, $limit, $offset) {
// Instance the object like
$class = get_class($table);
$anotherTable = new $class();
// ...
}
}
答案 1 :(得分:0)
也许你可能想看看这个评论过的代码。它可能会给你一些提示......
<?php
class costumers {
protected $Name;
//...
}
class users {
protected $Username;
//...
}
class db_helper {
//...
// NOTICE THAT THERE IS NO TYPE-HINT HERE...
// BAD PRACTICE! BUT THIS IS TO DEMONSTRATE
// THE POSSIBILITIES AVAILABLE TO YOU IN THIS CASE...
public function select($table, $columns, $limit, $offset) {
// INITIALIZE $out TO NULL TILL YOU KNOW MORE...
$out = null;
if(is_object($table)){
// IF $table IS AN OBJECT....
// JUST START USING IT WITHOUT INSTANTIATION:
$out = $table;
}else{
if(class_exists($table)){
// Instance the object like
$out = new $table;
}
}
}
// START USING THE OBJECT: $out
}
答案 2 :(得分:0)
$className = get_class($table);
$out = new $className();
如果你想做更多的事情,请阅读有关反思的内容。