I am executing following code from this post:
preg_match_all("/'(.+)' ((\w+)\(? ?(\d*) ?\)?)/", $sql, $_matches, PREG_SET_ORDER);
$matches = array_map(function($v) {return array(trim($v[2]), $v[1]);}, $_matches);
But I am getting following error:
Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in SqlParser.php on line 29
I have spent some time to solve this but I am unable to find the solution.
Can someone tell me that what is wrong ?
I'm assuming you are using a PHP version less than 5.3, which does not support closures (You confirmed this in your comments). The code below should work. I just converted the anonymous function to a normal function.
function map_cb($v){
return array(trim($v[2]), $v[1]);
}
preg_match_all("/'(.+)' ((\w+)\(? ?(\d*) ?\)?)/", $sql, $_matches, PREG_SET_ORDER);
$matches = array_map("map_cb", $_matches);