2013-02-11 51 views
1

我有一个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的问题?

谢谢!

+1

我猜'$ max'是不确定的,当你设置'$ lang ['CARTSTATUS'];'。谨慎向我们展示您设置的位置? – crush 2013-02-11 18:25:09

+0

php无法及时回溯并追溯修改使用尚未定义的变量创建的字符串。如果在设置cartstatus时$ max不存在,那么当您最终更改$ max时,它不会**被修改。 – 2013-02-11 18:25:56

回答

1

当您设置为$lang['CARTSTATUS']时,您已经定义了$max。通过您的提取码,它看起来像你第一次$lang['CARTSTATUS']然后$max

0

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

$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