【问题标题】:PHP echo replacement for a variable - ${variable} [duplicate]变量的PHP回显替换 - ${variable} [重复]
【发布时间】:2012-10-17 15:21:41
【问题描述】:

可能重复:
Curly braces in string in PHP

我遇到了一些“奇怪”的 PHP 代码,所以不要这样:

<?php echo $variable; ?>

我有这个:

${variable}

我不知道如何将它变成变量:

<?php echo number_format($variable, 2, ',', '.') ?>

有什么想法吗?

谢谢。

编辑:这是实际代码:

<script id="productTemplate" type="text/x-jquery-tmpl">
                <?php echo "Save:"; ?> ${savings} <?php echo "or"; ?> ${savings_percentage} <?php echo "%"; ?>
</script>

这个输出:

Save 15 or 3.2302678810608 %

我需要将 number_format 添加到 ${savings_percentage} 以便它可以输出:

Save 15 or 3.23 %

但不知道如何...

【问题讨论】:

  • ${variable}$variable; 相同 - 请参阅 codepad.org/wKh1zaE6
  • 在我的情况下,它不是 :) 没有 { } 它不会回应它......
  • ${variable} 还是{$variable}
  • 请添加更多上下文,以便我们可以看到您正在处理的内容,因为假设您的 php 在处理花括号方面是特殊的是不合逻辑的。
  • 我编辑了原始问题,并添加了实际代码...

标签: php echo


【解决方案1】:

这不是 PHP 变量。这是模板引擎变量或类似用 JavaScript 编写的脚本的一部分。

它的外部 PHP 脚本(由 &lt;?php ?&gt; 定义)。

阅读模板引擎或该脚本手册了解更多信息。

无法从 PHP 访问它,因为这是在服务器将 html 页面发送到浏览器之后,由客户端机器上的 JavaScript 处理的。 PHP 是在服务器上处理的,不能直接在浏览器和 PHP 代码之间传递变量。

【讨论】:

    【解决方案2】:

    ${variable} 语法

    除非这是在双引号字符串中,否则它与$variable 相同

    双引号字符串

    在双引号字符串中,您可以使用这种语法,例如,否则变量名会被误解。

    即下面是一些代码回显名为$variable 的变量:

    $variable = "something";
    echo "This is a string with a $variable";
    // outputs "This is a string with a something"
    

    这里是相同的代码,但在这种情况下,变量后面紧跟着字符串“name”:

    echo "This is a string with a $variablename";
    // outputs "This is a string with a "
    

    除了“错误”输出之外,它还会抛出未定义变量错误,因为 $variablename 未定义。

    下面是同样的例子,使用花括号来明确变量是什么:

    $variable_name = "something";
    echo "This is a string with a ${variable}name";
    // outputs "This is a string with somethingname"
    

    模板引擎

    来自您的编辑:

    <script id="productTemplate" type="text/x-jquery-tmpl">
        <?php echo "Save:"; ?> ${savings} <?php echo "or"; ?> ${savings_percentage} <?php echo "%"; ?>
    </script>
    

    这里的变量不在 php 标签中,因此在 php-context 中查找它们的含义是不合逻辑的。它们只是纯文本,如脚本标记所示 - 它们旨在与 (defunct) jquery tmpl 函数一起使用。

    我需要将 number_format 添加到 ${savings_percentage} 以便它可以输出:

    好吧,修复你没有在问题中提出的 js,以便它这样做:)

    【讨论】:

      【解决方案3】:

      您正在使用一个名为 TMPL 的 jquery 插件(现在不支持)。

      您应该通过 javascript 转换您的数据。

      ${savings_percentage.toFixed(2)} 
      

      您可以使用本机 .toFixed 方法或使用一些帮助程序(例如参见 this question

      【讨论】:

      • 这成功了,非常感谢 :) 有没有机会将 . 替换为 , ?目前,它是 3.23 %,可以这样制作:3,23 %, 而不是 b> ?
      • @NikolaNastevski 看到我回答中的链接 :) stackoverflow.com/questions/10351003/…
      • 好的,明白了,非常感谢您的帮助;)我还要感谢所有其他试图帮助我的人,非常感谢您的帮助;)
      猜你喜欢
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 2015-09-30
      • 2011-12-23
      • 2012-07-11
      相关资源
      最近更新 更多