Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,使用类访问JSON中的数据_Php_Json_Class_Oop - Fatal编程技术网

PHP,使用类访问JSON中的数据

PHP,使用类访问JSON中的数据,php,json,class,oop,Php,Json,Class,Oop,我需要使用类从JSON数据库访问数据。我的代码有一些错误,但我不知道它们在哪里。任何人都可以展示我需要改变什么才能让它工作?谢谢 <?php class Character { private $name; public function __construct($name) { $this->name = $name; } public function getName($name){ return $

我需要使用类从JSON数据库访问数据。我的代码有一些错误,但我不知道它们在哪里。任何人都可以展示我需要改变什么才能让它工作?谢谢

<?php

class Character {

        private $name;

public function __construct($name) {
            $this->name = $name;

        }
public function getName($name){
        return $this->name;
        }


}

$data = file_get_contents("databas.json");
            $data = json_decode($data, true);

            foreach($data['results'] as $e) {
            $character = new Character($e['name']);
            $characters[] = $character;
            }

            foreach($characters as $character) {
            echo "Name: " . $character->getName();
            } 


 ?>

您的方法有一个额外的参数

public function getName($name){
    return $this->name;
}
当您这样调用它时,它将发出一个错误

$character->getName()
没有必需的参数:在这种情况下,只需从方法定义中删除该参数。我想你复制了它并重命名了它,然后忘记删除参数,等等。。。不用担心,我已经做了十亿次了

public function getName(){
    return $this->name;
}
您的代码在

输出:

<br />
<b>Warning</b>:  Missing argument 1 for Character::getName(), called in [...][...] on line 26 and defined in <b>[...][...]</b> on line <b>10</b><br />
Name: foo

干杯

我的代码有一些错误,但显示错误请也分享任何错误或提示什么出错,提供预期的输出和你得到什么。在当前格式中,您的问题过于笼统,另请参见:您必须在循环之外初始化$characters[]数组,而不共享错误,这很难回答。。一些提示,使用print_r$数据;$data=json_decode$data之前为true;并分享结果也许你的文件名databas.jsonstanks中有输入错误以获得帮助,但我仍然无法让它工作。