这些天学习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
我应该改变什么?
答案 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"
。