【问题标题】:PHP, Classes and ObjectsPHP、类和对象
【发布时间】:2019-07-31 20:44: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("databs.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;
        }

}
 ?>

【问题讨论】:

  • 这段代码对 JSON 或数据库没有任何作用。您能否更具体地说明您要做什么,并添加任何其他相关代码?
  • see where the problem is:如果不提供任何有关预期目的、MCVE 和实际输出与预期输出的详细信息,您希望我们如何做到这一点?
  • 对于我的问题不清楚,我深表歉意。我已经编辑了我的问题,希望你们能提供帮助。

标签: php html arrays json oop


【解决方案1】:

如果您只想使用 getter setter 方法访问变量,请使用私有范围而不是公共范围。

而且你的方法应该是公开的。

<?php

class Character {

        private $name;

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

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

}
 ?>

【讨论】:

  • 谢谢,这很有帮助,但我仍然可以让它工作。我已经编辑了我的问题,希望您能提供帮助或指出错误所在。非常感谢!
【解决方案2】:

您的对象应该始终是私有的,而您的函数应该是公开的(以便您可以访问它们)。这就是为什么要构建构造函数的原因。假设对象是 $name,您应该能够通过更改它来访问它。

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 2011-06-20
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多