- var_dump: documentation ( source)
- extract: documentation ( source)
- preg_replace: documentation ( source)
<?php
$facts = [];
$facts['A'] = true;
$facts['B'] = false;
$test = '(A || B);';
$ruleExecutor = function ($_rule) use ($facts) {
$_condition = preg_replace('/(\w+)/', '$$1', $_rule); //(A || B) => ($A || $B)
extract($facts);
var_dump($A);
var_dump($B);
unset($facts);
var_dump($_condition);
return eval($_condition);
};
var_dump($ruleExecutor($test));
var_dump($facts);
?>