【问题标题】:Loading a variable into an array将变量加载到数组中
【发布时间】:2013-01-26 22:10:27
【问题描述】:

我有一个PHP代码如下:

1 个文件包含以下内容:

    <?php
$max=count($_SESSION['cart']);
?>
<div class="cartSummary">
<?php echo $lang['CARTSTATUS']; ?>
</div>

另一个文件包含这个:

$lang['CARTSTATUS'] = "Tiene <a href='../cart/shoppingCart.php'>".$max." productos </a>en su cesta de compra";

问题是结果只显示纯文本,$max 变量没有打印出来。

您是否发现将 $max 加载到我正在使用的数组 $lang 中有任何问题?

谢谢!

【问题讨论】:

  • 我猜$max 在你设置$lang['CARTSTATUS']; 时是未定义的。愿意告诉我们你在哪里设置的吗?
  • php 无法及时返回并追溯修改使用尚未定义的变量创建的字符串。如果在设置购物车状态时 $max 不存在,那么当您最终更改 $max 时,它将被修改。

标签: php arrays variables echo


【解决方案1】:

当您设置$lang['CARTSTATUS'] 时,您已经需要定义$max。根据您提取的代码,您似乎首先设置了$lang['CARTSTATUS'],然后设置了$max

【讨论】:

    【解决方案2】:

    让你的其他文件有这样的分配:

    $lang['CARTSTATUS'] = 'Tiene <a href=\'../cart/shoppingCart.php\'> $max productos </a>en su cesta de compra';
    

    然后在file1中有这样的代码:

    <?php
        $max=count($_SESSION['cart']);
        $tmp = $lang['CARTSTATUS'];
        eval("\$tmp = \"$tmp\";");
        $lang['CARTSTATUS'] = $tmp;
    ?>
    <div class="cartSummary">
    <?php echo $lang['CARTSTATUS']; ?>
    </div>
    

    它会输出你期望的字符串。

    我通常不会在其中提供任何带有 eval 的答案,但这似乎可以安全地使用 PHP 备受批评的 eval function

    【讨论】:

      猜你喜欢
      • 2023-01-26
      • 1970-01-01
      • 2017-07-13
      • 2011-01-11
      • 2015-11-19
      • 2021-01-24
      • 2021-07-05
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多