@ivanzuk761
Изучаю PHP

ООП Пользователи?

Ребят Всем Привет у меня такой вопрос я только начал изучать ооп
Как делать так что бы я не писаль больше
$users->getInfo();
Тк у меня может быть 1000юзеров и я не могу так написать 1000 раз что бы вывести все имя пользователя
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
	<title>ООП</title>
</head>
<body>
<?php

class User{
    public $name;
    public $email;
    public $city;
    public $password;

    public function __construct($name,$email,$city,$password)
    {
        $this->name = $name;
        $this->email = $email;
        $this->city = $city;
        $this->password = $password;
    }
    public function getInfo(){ ?>
        <table class="table">
  <thead>
    <tr>
      <th scope="col">Имя</th>
      <th scope="col">Email</th>
      <th scope="col">Город</th>
      <th scope="col">Пароль</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Id</th>
      <td><?php echo $this->name; ?></td>
      <td><?Php echo $this->email; ?></td>
      <td><?php echo $this->city; ?></td>
    </tr>
  </tbody>
</table>
  <?php   }
}
$users = new User('Иван','ivanzuk761@gmail.com','Киев',143);
$users->getInfo();


$users2 = new User('Руслам','ruslam.com','mocow',6489);
$users2->getInfo();

?>

</body>
</html>
  • Вопрос задан
  • 213 просмотров
Решения вопроса 4
Zoominger
@Zoominger
System Engineer
я только начал изучать ооп

Теперь начните изучать циклы for: www.php.su/learnphp/cs/?cycles
Ответ написан
@FanatPHP
Чебуратор тега PHP
Нужно забыть про ООП на пару годков минимум, и заняться изучением базовых элементов языка - циклы, условные переходы, отделение логики приложения от логики отображения
Ответ написан
Bavashi
@Bavashi
При создании объекта заносите его в коллекцию/массив, а потом циклом проходите по всей коллекции и для каждого элемента коллекции вызывайте метод getInfo(). Только ООП в данном случае будет не причем.
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
У тебя тут сразу куча проблем. Зачем в Объекте-значении вообще метод getInfo() ? Зачем выводить в методе html код? Зачем вводить данные юзеров в конструкторе вручную если эти данные должны приходить либо из базы данных либо из формы?

Слышал про MVC?
Сделай такую же структуру:

КОНТРОЛЛЕР UserController.php - будет содержать метод getAllUsers() который получает список юзеров при обращении к Модели.

МОДЕЛЬ User.php - просто объект-значение с полями (логики у тебя там все равно никакой нет), заполняются при запросе в базу и создании объектов.

ВИД UserList.php - получает от Контроллера коллекцию Юзеров и через цикл foreach выводит пользователей и их данные.

Итого у тебя 3 файла которые отвечают каждый за своё дело, не смешивая функционал + подключение к базе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 сент. 2020, в 20:17
100000 руб./за проект
23 сент. 2020, в 20:15
12000 руб./за проект
23 сент. 2020, в 20:14
1000 руб./за проект