PHP,类和对象

时间:2019-03-10 10:09:39

标签: php html arrays json oop

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

  

字符

     
      
  • 姓名:John
  •   
  • 名称:Sarah
  •   
  • 名称:Michael
  •   

我已经设法用我的代码达到了这一目标。我知道这段代码还没有完成或有错误,但是我仍然是一个初学者并正在学习。您能帮我使此代码生效吗?

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;
        }

}
 ?>

2 个答案:

答案 0 :(得分:1)

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

您的方法应该是公开的。

<?php

class Character {

        private $name;

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

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

}
 ?>

答案 1 :(得分:1)

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