我正在使用 Velocity (1.7) 生成 PHP 代码。
我用严格的 excape 设置了 Velocity,这有一点帮助:
p.setProperty(RuntimeConstants.RUNTIME_REFERENCES_STRICT_ESCAPE, "true");
但是我在模板中的以下行遇到了问题:
\$result['${attribute.Name}'] = \$this->${attribute.Name};
输出是:
$result['${attribute.Name}'] = $this->color;
但它应该是:
$result['color'] = $this->color;
编辑:
我找到了解决问题的方法:
#set($d = "$")
${d}result['${attribute.Name}'] = \$this->${attribute.Name};
但我不喜欢引入一个额外变量只是为了解决 Velocity 中可能存在的错误的解决方案。