【问题标题】:PHP, access data in JSON by using classPHP,使用类访问JSON中的数据
【发布时间】:2019-03-11 11:40:47
【问题描述】:

我需要使用类来访问 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();
            } 


 ?>

【问题讨论】:

  • My code has some errors but 显示错误
  • 还请分享任何错误或提示,说明出现了什么问题,提供预期的输出和您得到的结果。在当前格式中,您的问题过于笼统,另请参阅:stackoverflow.com/help/how-to-ask
  • 你必须在循环外初始化$characters[]array
  • 没有共享错误,很难回答..一些提示,使用print_r($data);在$data = json_decode($data, true); 之前并分享结果
  • 或者你的文件名可能有错字databas.json

标签: php json class oop


【解决方案1】:

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

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

这样调用会报错

$character->getName()

没有必需的参数:在这种情况下,只需从方法定义中删除它。我想你复制了它并重命名了它然后忘记删除参数等等......别担心我已经这样做了十亿次......

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

sandbox 中的代码

输出:

<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

干杯!

【讨论】:

  • 感谢您的帮助,但我仍然无法正常工作。
猜你喜欢
  • 2021-12-07
  • 2016-01-14
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 2023-01-08
  • 1970-01-01
相关资源
最近更新 更多