我將數組以字符串形式存儲在數據庫中供以後檢索: 數組的值恰好是filter_val調用的參數。用於陣列創建的Eval備選
$str = 'array("options" => array("min_range" => 4))';
我知道我可以使用
eval('$options = ' . $str . ';');
爲傳遞給filter_val準備這個值,但是否有任何其他方式做到這一點?
This related post(雖然優秀)沒有處理我的確切問題。
我將數組以字符串形式存儲在數據庫中供以後檢索: 數組的值恰好是filter_val調用的參數。用於陣列創建的Eval備選
$str = 'array("options" => array("min_range" => 4))';
我知道我可以使用
eval('$options = ' . $str . ';');
爲傳遞給filter_val準備這個值,但是否有任何其他方式做到這一點?
This related post(雖然優秀)沒有處理我的確切問題。
我不會使用eval()
來讓您的字符串功能。例如,功能eval
may be disallowed on some hosts,因此您的應用程序將無法工作。
更合適的方法是將您的選項存儲在json_encode()
'd字符串中,並在需要時進行解碼。
$options = json_decode($options_from_db);
出於某種原因,我很難做到這一點,直到我意識到它會像魅力一樣工作。 :) – 2015-03-13 17:25:27
將它存儲爲'json_encode'字符串? – 2015-03-13 16:18:30
或序列化它 – 2015-03-13 16:18:57
是的,如果你打算把它放在你的代碼的領域之外,那麼就把它存儲起來,保存數組的信息,但沒有數據結構的概念,你可以輕鬆地重新創建。我也會爲JSON投票。 – yoshiwaan 2015-03-13 16:21:15