首页 > 解决方案 > 如何修复错误 spl_autoload_register():Argument has been ignored

问题描述

我从我的索引页面收到此错误,该页面是我拥有的模型视图控制器(MVC)项目中唯一的视图页面,并且在我的索引页面中使用以下代码

<?php 

define("ROOT", dirname(__DIR__) . DIRECTORY_SEPARATOR);
define("APP",ROOT . "app" . DIRECTORY_SEPARATOR);
define("VIEW", ROOT . "app". DIRECTORY_SEPARATOR . "view" . DIRECTORY_SEPARATOR);
define("MODEL",ROOT . "app" . DIRECTORY_SEPARATOR . "model" . DIRECTORY_SEPARATOR);
define("DATA", ROOT . "app" . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR);
define("CORE" , ROOT . "app" . DIRECTORY_SEPARATOR . "core" . DIRECTORY_SEPARATOR);
define("CONTROLLER", ROOT . "app" .DIRECTORY_SEPARATOR . "controller" . DIRECTORY_SEPARATOR);


$modules = [ROOT,APP,CORE,CONTROLLER,DATA];



$path = set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR,$modules));

spl_autoload_register("spl_autoload", false);

标签: phpmodel-view-controllerspl-autoload-register

解决方案


正如对 PHP 手册的评论所说:

由于 PHP 8.0 spl_autoload_register() 将始终在无效参数上抛出 TypeError,因此第二个参数throw将被忽略,如果设置为 False,则会发出通知。

因此,在 PHP 8 上,您不应再将false其作为第二个参数传递。


推荐阅读