预期类型“对象”。在 PHP MVC 项目中发现 'void'.intelephense(1006) 问题

Ter*_*rry 4 php model-view-controller object void

获取预期类型“对象”。在 PHP MVC 项目中发现 'void'.intelephense(1006) 问题。我在这里附上了我关注的相关代码和来源(youtube)。如果有人能解释发生了什么,我将不胜感激。

拥有一个具有获取模型实例功能的家庭控制器,如下所示:(我是如何编码的)

<?php

class Controller{

    public function model($model){

        require_once '../app/models/' . $model . '.php';
        
        return new $model();
    }
    
}
Run Code Online (Sandbox Code Playgroud)

有这样的 User.php 类:(我是如何编码的)

<?php 


class User{
    public $name;

    public function __construct()
    {
        
    }
}
Run Code Online (Sandbox Code Playgroud)

有这样的家庭控制器:(我是如何编码的)

<?php

class Home extends Controller{

    public function index($name = ''){

      
        $user = $this->model('User');
        $user->name = $name;
        echo $user->name;
        
    }

    public function test(){

        echo 'test_function()';

    }

    public function get_user_name(){

    }

    public function model($model){
        echo $model;
    }
}
Run Code Online (Sandbox Code Playgroud)

附近$user->name = $name; 和 echo $user->name; 它显示了错误。这是截图 恐怕找不到问题。我认为这是模型的问题,但尚未解决。我正在观看 YouTube 视频系列并执行此操作。这是相关视频 URL youtube video编码如下,但我遇到了麻烦。有人可以解释为什么会发生这种情况以及错误在哪里吗?我想澄清一下这个MVC架构。

小智 9

您还可以通过添加来定义变量

 /**
 * 
 * @var object $user
 */
Run Code Online (Sandbox Code Playgroud)

或者甚至可能

/**
 * 
 * @var User $user
 */
Run Code Online (Sandbox Code Playgroud)

就在之前

 $user->name = $name;
Run Code Online (Sandbox Code Playgroud)

这应该会使错误消失。