数组在php中没有得到正确的输出

时间:2015-06-26 14:24:56

标签: php

这些天学习php。首先抱歉,如果它是一个愚蠢的查询。

<?php

$cfg['x']['y']['z'] = "TRUE"; 
$cfg['x']['y'] = "FALSE";

print_r($cfg['x']['y']['z']); //what to change here to get required output

?>

输出: F

但我的预期输出为TRUE

我应该改变什么?

1 个答案:

答案 0 :(得分:6)

此处$cfg['x']['y']['z']已不再存在,因为您覆盖了包含$cfg['x']['y']的{​​{1}}。

$cfg['x']['y']['z']

在这里,您尝试获取 $cfg['x']['y'] = "FALSE"; 变量的'z'元素。这是一个字符串,因为你将$cfg['x']['y']放在引号中。 PHP的类型杂耍将FALSE'转换为零。因此,字符串'z的{​​{1}}元素为0

'false

没有真正的方法可以按照您的意图来完成这项工作。您应该将F分配给新变量或将print_r($cfg['x']['y']['z']); 转换为数组,以便它可以包含多个值:

FALSE

仅供参考,如果您打算使用$cfg['x']['y']$cfg['x']['y'] = array( 'z' = "TRUE", 'newKey' = "" ); 作为布尔值,则不应将它们用引号括起来,否则它们就是字符串。因此,由于PHP的类型杂耍,"TRUE""FALSE"评估为"TRUE"