private $questionObj;
/**
* 根据类目创建对象
* @param $className
*/
public function getQuestionObj($className)
{
try {
// 根据类名 创建对象
$class = new ReflectionClass($className);
$this->questionObj = $class->newInstance();
} catch (ReflectionException $e) {
$this->questionObj = "";
}
}
// 类似于抽象方法
public function getOptions($questionInfo)
{
// 如果子类重写了 则返回子类中重写的方法,也可以是父类里面默认实现的
return $this->questionObj->getOptions($questionInfo);
}
父类:
public function getOptions()
{
$options = "";
return $options;
}
子类:
public function getOptions($questionInfo)
{
$options = $questionInfo['question']['question']['options'];
$strOptions = "";
foreach ($options as $key => $value) {
$temp = $key . ":" . 'str';
$strOptions = $strOptions . "\n " . $temp;
}
return $strOptions;
}