Сбой запроса в php

#php

#php

Вопрос:

Я новичок в PHP, я пытаюсь потребовать UserController.php из Controller.php но все, что я получаю, это «HTTP ERROR 500» в браузере. Что здесь происходит?

Controller.php

 class Controller
{
    public function __construct()
    {
    }
    public function call(){
        // echo 1;
        require_once "../Controllers/UserController.php";
    }
}

  

UserController.php

 class UserController
{
    public function __construct()
    {
    echo '111111111';
}

public function hi(){
    echo  '1';
}
}

$a = new UserController();
$a->hi();
  

Комментарии:

1. Вы не можете определить класс внутри определения функции.

2. У вас должна быть require_once строка за пределами class Controller .

Ответ №1:

Определения классов не могут быть вложены внутрь функций или других классов. Поэтому у вас не должно быть этой require_once строки внутри определения функции. Переместите его за пределы класса.

 require_once "../Controllers/UserController.php";

class Controller
{
    public function __construct()
    {
    }
    public function call(){
        // echo 1;
    }
}
  

Ответ №2:

 <?php

require_once "../Controllers/UserController.php";

class Controller
{
    public function __construct()
    {
    }
    public function call(){
        // echo 1;
        $a = new UserController();
        $a->hi();
    }
}
  

Комментарии:

1. Ответы, содержащие только код, в Stack Overflow не приветствуются, поскольку они не объясняют, как это решает проблему. Пожалуйста, отредактируйте свой ответ, чтобы объяснить, что делает этот код и как он отвечает на вопрос, чтобы он был полезен OP, а также другим пользователям с аналогичными проблемами.