У меня есть этот код:
class Context
{
...
$public details;
...
}
$context = new Context();
class Info
{
....
$public $infoContext;
public function show()
{
$infoContext = "<html><head></head><body><?php echo $context->details; ?></body><html>";
eval( ' ?>'. $infoContext. '<?php ');
}
}
$inf = new Info();
$info->show();
К сожалению, этот код не работает, но это то, чего я хочу добиться, я хочу выполнить код php echo $ context-> details; Но я не знаю как, пожалуйста, помогите …
впрыскивать $context
в качестве аргумента конструктора для вашего Info class
, так что вы можете сохранить его как свойство (чтобы он больше не был «внешним» объектом); затем используйте обычную строку для построения $infoContext
а не эта ужасная строка и Eval
class Info
{
protected $context;
....
public $infoContext;
public function __construct($context) {
$this->context = $context;
}
public function show()
{
$this->infoContext = "<html><head></head><body>" . $this->context->details . "</body><html>";
echo $this->infoContext;
}
}
$context = new Context();
$inf = new Info($context);$info->show();
Других решений пока нет …