【发布时间】:2017-09-28 21:10:27
【问题描述】:
以下代码有什么问题:
static function queryVariables($variable_name)
{
$query = <<<SQL
SELECT *
FROM variables v
WHERE v.nam = '$variable_name'
SQL;
$ans = self::$conn->select($query);
$query = <<<SQL
SELECT v.id, v.nam variable_nam, v.descr variable_descr, us.id subset_id, us.unit_id, us.ord, us.nam subset_nam, us.color, us.min_value, us.max_value
FROM variables v
LEFT JOIN unit_subsets us ON v.unit_id = us.unit_id
WHERE v.nam = '$variable_name'
SQL;
$ans = self::$conn->select($query);
return $ans;
}
我知道这在逻辑上是不正确的,因为覆盖了$query 变量。但问题是:为什么它不明白这里有两个 heredocs?它将整个块视为一个heredoc并抛出
Undefined variable: ans
异常,因为它试图将$ans 嵌入到heredoc 中。
如何解决?
【问题讨论】:
-
像这样在测试文件中一个接一个地放置两个 heredocs 对我来说很好。