我目前正在尝试使用 json_decode 用数据填充 2D 数组。但是,它似乎加载正确,但是当我尝试获取特定值时,即使不是,它也会返回 null。
我的 2dtestarray.php:
<?php
class testarray {
public static $listConfigs;
public function __construct() {
$this->listConfigs = json_decode(file_get_contents('configuration.json'), true);
}
public static function getValue($list, $property) {
return self::$listConfigs[$list][$property];
}
public function save() {
file_put_contents('configuration.json',json_encode($listConfigs));
}
}
?>
我的testload.php:
<?php
require_once("2darraytest.php");
$ta = new testarray();
var_dump($ta->getValue('main', 'canView'));
var_dump($ta->listConfigs);
$test = json_decode(file_get_contents('configuration.json'), true);
var_dump($test);
$mainList = $test['main']['canView'];
echo $mainList;
?>
我的配置.json:
{"main":{"canView":"true"},"secondary":{"canView":"false"}}
testload.php 的输出:
NULL
array(2) { ["main"]=> array(1) { ["canView"]=> string(4) "true" } ["secondary"]=> array(1) { ["canView"]=> string(5) "false" } }
array(2) { ["main"]=> array(1) { ["canView"]=> string(4) "true" } ["secondary"]=> array(1) { ["canView"]=> string(5) "false" } }
true
最后,我的问题,这就是为什么是“var_dump($ta->getValue('main', 'canView'));” 返回 null 而不是 true,例如 "$mainList = $test['main']['canView']; echo $mainList;" 做?