有什麼不對下面的代碼:PHP中的兩個連續的heredocs?
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?它把整個塊作爲一個定界符並拋出
Undefined variable: ans
例外,因爲它試圖嵌入$ans
到定界符。
如何解決?
將兩個heredocs一個接一個地放在一起,就像在測試文件中工作得很好。 –