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

Joh*_*ohn 2 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

?>
Run Code Online (Sandbox Code Playgroud)

输出: F

但我的预期输出是真的

我应该改变什么?

Joh*_*nde 6

这里$cfg['x']['y']['z']不再存在,因为你覆盖了$cfg['x']['y']哪个包含$cfg['x']['y']['z'].

 $cfg['x']['y'] = "FALSE";
Run Code Online (Sandbox Code Playgroud)

在这里,您尝试获取变量的'z'元素$cfg['x']['y'].这是一个字符串,因为你FALSE输入引号.'z'通过PHP的类型杂耍转换为零.所以0字符串的元素'falseF

print_r($cfg['x']['y']['z']);
Run Code Online (Sandbox Code Playgroud)

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

$cfg['x']['y'] = array(
    'z' = "TRUE",
    'newKey' = ""
);
Run Code Online (Sandbox Code Playgroud)

仅供参考,如果您打算使用"TRUE""FALSE"作为布尔值,则不应将它们用引号括起来,否则它们就是字符串.其结果是既"TRUE""FALSE"评估,以true还由于PHP的类型戏法.