【问题标题】:PHP, addressing objects using classPHP,使用类寻址对象
【发布时间】:2019-03-10 15:13:29
【问题描述】:

我正在尝试使用类列出从 json 数据库到 html 的所有名称。 html 输出应如下所示:-

字符

  • 姓名:约翰
  • 姓名:莎拉
  • 姓名:迈克尔

我的代码已经做到了这一点。我知道这段代码没有完成或者它有错误,但我仍然是一个初学者和学习者。你能帮我让这个代码工作吗?

Json 数据库文件

databas.json

{
"results": [
    {
        "name": "John",
        "height": "182 cm",
        "mass": "80 kg",
    },
    {
        "name": "Sarah",
        "height": "165 kg",
        "mass": "60 cm",
    },
    {
        "name": "Michael",
        "height": "178 cm",
        "mass": "75 kg",
    },
    ]
}

索引文件

index.php

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">

        <title>Character</title>

    </head>

    <body style="margin-bottom:20em;">
        <h1>Characters</h1>
            <?php include('characters.php'); ?>

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

            echo '<pre>';
            print_r($data);
            echo '</pre>';

            ?>
    </body>
</html>

类代码

characters.php

<?php

class Character {

        private $name;

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

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

}
 ?>

$data 的内容是

Array
(
    [results] => Array
        (
            [0] => Array
                (
                    [name] => John
                    [height] => 182 cm
                    [mass] => 80 kg
                )

            [1] => Array
                (
                    [name] => Sarah
                    [height] => 165 kg
                    [mass] => 60 cm
                )

            [2] => Array
                (
                    [name] => Michael
                    [height] => 178 cm
                    [mass] => 75 kg
                )

        )

)

【问题讨论】:

  • 可以分享$data的内容吗? (使用var_dump($data)
  • 我刚刚将它添加到问题中。

标签: php json class object instantiation


【解决方案1】:

我不确定我是否正确,但你可以做简单的foreach 循环:

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

foreach($data["result"] as $e) {
    echo "Name: " . $e["name"];
}

请注意,在json_decode 中发送true 返回关联数组,因此您可以使用[key] 访问名称键,因此在include('characters.php'); 中不需要

编辑:如果你想使用类:

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

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

【讨论】:

  • 我知道这是可能的,但我正在尝试使用类来做到这一点。
  • @DhulfiqarH.Al-Hussan 那么您需要先将数组加载到课堂上 - 更新了我的答案
  • 你能建议怎么做吗?
  • 我应该在类文件中写这个吗?
  • 找到了! ...完成!
猜你喜欢
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
相关资源
最近更新 更多