syntax error, unexpected 'use' (T_USE), expecting '{'
Problem
syntax error, unexpected 'use' (T_USE), expecting '{'
Code
function fetchSumWithExplain($schemaTableName, $tag) use ($app)
{
$generateExplain = function ($sql, $header) use ($app) {
$query = $app->db->prepare($sql);
$query->execute();
$sqlData = $query->fetchAll(PDO::FETCH_ASSOC);
$retVal = array_merge(array($header),$sqlData);
return $retVal;
};
$sql = "SELECT SUM(price) as price, (SUM(tvq)+SUM(tps)) as taxes FROM `$schemaTableName` WHERE revenue = 0 AND type = {$tag}";
$sql_explain = "SELECT id, name, total, tps, tvq, price, description, date FROM `$schemaTableName` WHERE revenue = 0 AND type = {$tag}";
$query = $app->db->prepare($sql);
$query->execute();
$sqlData = $query->fetch(PDO::FETCH_ASSOC);
$line = floatval($sqlData['price']);
$explanation = $generateExplain($sql_explain, array("name", "total", "tps", "tvq", "price", "description", "date"));
return array($line, $explanation);
}
Solution
Only anonymous functions may have declare a use statement. So either switch the function to a $variable = function(...) use (...) or pass the $app as a parameter, or as declare as global.
function fetchSumWithExplain($app, $schemaTableName, $tag)
Recent Comments