You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Magento 1.x中拼接字符串时遭遇Unexpected Identifier错误求助

解决Magento 1.x中字符串拼接的「Unexpected Identifier」错误

嘿,我一眼就瞅出问题所在了——你把PHP和JavaScript的语法混在一起写了,这就是触发「Unexpected Identifier」错误的核心原因!咱来一步步拆解并修正:

问题1:错误混用PHP输出语法

你在JS代码里直接写了echo $product->getPrice(),这完全搞错了PHP和JS的执行逻辑:PHP是服务器端代码,会先运行并输出内容到页面,然后JS才会在客户端解析。正确的做法是把PHP变量的输出直接嵌入到JS字符串中,不需要额外加echo关键字在JS的拼接逻辑里。

问题2:Magento方法名错误

你写的$product->Name()是错的,Magento的商品名称获取方法是标准的驼峰式getter:$product->getName(),这个方法名拼写错误也会导致PHP输出异常,进而引发JS语法错误。

修正后的代码方案

这里给你两种可靠的写法:

写法1:直接嵌入PHP输出到JS拼接中

var testVar = "12345::'" + <?php echo $product->getPrice(); ?> + "'::'" + "<?php echo $product->getName(); ?>" + "'::ProductID";

写法2:先在PHP中定义变量,再嵌入JS(更清晰易维护)

<?php
// 先在PHP层获取并存储变量
$productPrice = $product->getPrice();
$productName = $product->getName();
?>
// 再在JS中使用已经处理好的变量值
var testVar = "12345::'<?php echo $productPrice; ?>'::'<?php echo $productName; ?>'::ProductID";

效果示例

当你的商品价格是45.00、名称是Product Name Here时,服务器渲染后输出的纯JS代码会是:

var testVar = "12345::'45.00'::'Product Name Here'::ProductID";

这样JS就能正常解析,不会再出现语法错误啦。

内容的提问来源于stack exchange,提问作者Ryan H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:30:13