2016-10-17 31 views
0

我知道這是可能呼應變量直接在文本如何EVAL(或回聲)類變量在文本中的PHP

$apples = 4; 
echo "You have $apples apples." 

如何用類變量做呢?這不起作用。

class service { 
    public $active; 
} 
$service["test"] = new service(); 
$service["test"]->active = true; 

echo "Test service is: $service[test]->active"; 

我問,因爲我需要在eval中打印類變量(我使用MyBB引擎進行論壇)。

eval("\$site .= \"".$templates->get($template)."\";");

以前我用{$var}和它的工作,但{$var[sth]->sth}沒有。

+0

'$ =服務新服務(); $ service-> active ='active'; echo $ service-> active;' –

+0

首先實例化你的類!然後嘗試使用它! – RiggsFolly

+0

'$ service [「test」]'和cheeze的價格有什麼關係?這表明你有一個對象數組!你做?? – RiggsFolly

回答

0

這工作,也沒有必要eval()

class service { 
    public $active; 
} 
$service["test"] = new service(); 
$service["test"]->active = 99; 

echo "Test service is: {$service['test']->active}"; 

或者

class service { 
    public $active; 
} 
$service["test"] = new service(); 
$service["test"]->active = true; 

echo "Test service is: " . $service['test']->active == true ? 'TRUE' : 'FALSE'; 
+0

感謝您的快速回復。好吧,它適用於echo,但不適用於eval。我需要eval,因爲正如我所說的,我的論壇使用它來打印頁面。我有一個頁面模板(html)和頁面代碼(php)。模板打印出來:'eval(「\ $ site。= \」「。$ templates-> get($ template)。」\「;」);'。如果我在代碼(php)中有例如'$ test = 4;',那麼我在模板{$ test}中編寫,並用模板打印。我想和類varriable做同樣的事情,但是'{$ service ['test'] - > active}'不起作用。 – user2321517