最近做的一個東西需要自己設定幾個設定檔.
設定檔本身就是php檔案,用數組做配置.
然後因為其中可能包含一些對邏輯的配置,比如
$config = [ "a" => 666, "b" => 777, "x" => "" //可以填 ">","<",">=","<="等等]
然後在程式裡以這個配置來決定一些運算結果該怎麼處理.
除了用
switch($config['x']){ case ">": if(a>b){ } break; case "<": if(a
這種笨辦法之外,還有什麼優雅的實現方式嗎?
或者能否推薦相關教程/源碼/文章.非常感謝!
回複內容:
最近做的一個東西需要自己設定幾個設定檔.
設定檔本身就是php檔案,用數組做配置.
然後因為其中可能包含一些對邏輯的配置,比如
$config = [ "a" => 666, "b" => 777, "x" => "" //可以填 ">","<",">=","<="等等]
然後在程式裡以這個配置來決定一些運算結果該怎麼處理.
除了用
switch($config['x']){ case ">": if(a>b){ } break; case "<": if(a
這種笨辦法之外,還有什麼優雅的實現方式嗎?
或者能否推薦相關教程/源碼/文章.非常感謝!
你那個不叫配置,而是參數數組。通常是這樣的:
$config = array( 'useableOp' => array('>', '<', '==', '>=', '<='),);function do($param1, $param2, $op) { if (! in_array($op, $config['useableOp'])) { throw new \Exception('無效的操作符'); } $param1 = (int) $param1; $param2 = (int) $param2; eval("\$result = {$param1} {$op} {$param2}"); return $result;