我有一個Json,它包含一些我想自動定義的內容。它正常工作與簡單的"key": "val"
語句,但我不能讓它爲eval
staments工作:Php:json到常量
$cat test.php
<?php
function objDefinition($obj) {
foreach ($obj as $key => $val) {
$val = $val;
\define($key, $val);
} }
$json = \json_decode(\json_encode([
'COOKIE_EXP' => "eval('time() + (10 * 365 * 24 * 60 * 60)')",
]));
objDefinition($json);
echo COOKIE_EXP;
$php test.php
eval('time() + (10 * 365 * 24 * 60 * 60)')
我知道eval
是邪惡等等,但這種方法將節省我很多的代碼!
謝謝!
json僅適用於靜態值。它不能包含純文本字符串以外的任何其他表達式。所以是的,你可以做到這一點的唯一方法是通過eval() –
你是否得到任何錯誤?你能提供嗎? – taxicala
@MarcB ok,但是'eval'不能正常工作......把'eval'放在$ val裏面,我希望'define'正常工作:相反'COOKIE_EXP'的值是'eval('time() +(10 * 365 * 24 * 60 * 60)')'... – masavini