Magento-函数名称必须是字符串


Magento - Function name must be a string

我正试图通过向网站添加一些PHP代码,将收入数据从Magento传递到AdWords,然后用echo实现跟踪,将变量传递到Javascript。

这是我所拥有的:

<?php
$orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$total = (float)number_format($order()->getSubtotal(),2);
?>

然后,我使用PHP echo将$total放入谷歌转换跟踪代码中,如下所示:

    <!-- Google Code for Website Conversions Conversion Page --> <script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1011076746;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "3B7tCPfZj2YQip2P4gM"; 
if (<?php echo $total?>) {
    var google_conversion_value = <?php echo $total?>;
}
var google_conversion_currency = "USD"; 
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript"  
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""  
src="//www.googleadservices.com/pagead/conversion/1011076746/?value=<?php echo $total?>&amp;currency_code=USD&amp;label=3B7tCPfZj2YQip2P4gM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

但运气不好。

它返回一个函数名称。该名称必须是第69行的字符串错误。据我所知,第69行是我代码中的第4行。我不得不按照客户的要求删除它。

有人能帮忙吗?我没有足够的PHP经验来真正诊断这个问题。

问题:您在代码中使用$variable作为function myFunction(),这是错误的。

注意:变量&函数是每种编程语言的两个不同的主要元素,所以最好至少区分这两个元素,不要把它们误认为是另一个。!

解决方案:删除以下代码中$order后面的括号(),您的问题就会得到解决。!

代码:

<?php
$orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getModel('sales/order')->load($orderId);
$total = (float)number_format($order->getSubtotal(),2);
?>

@实际信用归于@Felipe Duarte

额外课程:

变量可以包含一个函数,即您可以将一个函数分配给一个变量,然后您可以立即使用该变量调用该函数。

例如:

//It's A Function
function myFunction() {
// Simple Printing The Hello World Text
echo "Hello World";
}
// Assigning The Function To The Variable
$variable = 'myFunction';
//Calling The Variable As A Function
echo $variable();