【发布时间】:2020-10-23 07:07:15
【问题描述】:
大家下午好。
在过去的 3 天里,我一直在努力使用 PHP 的自动加载功能,该功能旨在简化和统一程序的类文件,所有这些文件都位于一个执行文件中。对于上下文,我目前正在从this tutorial videos学习PHP的OOP视角,不仅是为了在大学做PHP OOP项目之前进一步了解PHP的OOP理解,同时也是为了尝试创建自己的PHP程序,所以ELI5关于请给我解决方案。
根据我从以下视频中学到的知识:Video 1 和 Video 2,我根据我学到的知识编写的自动加载代码似乎工作正常,但是,它给出了两个警告:
警告:include(/classes/person.php):无法打开流:第 12 行的 C:\xampp\htdocs\CollegeTimetableApp\includes\autoloader.php 中没有这样的文件或目录
警告:include():在 C:\xampp\htdocs\CollegeTimetableApp\includes\autoloader.php 中打开 '/classes/person.php' 以包含 (include_path='C:\xampp\php\PEAR') 失败在第 12 行
并且,它给出了如下致命错误消息:
致命错误:未捕获的错误:在 C:\xampp\htdocs\CollegeTimetableApp\includes\index.php:33 中找不到类 'person' 堆栈跟踪:#0 {main} 在 C:\xampp\htdocs\CollegeTimetableApp 中抛出\includes\index.php 第 33 行
我将包含downloadable files,以便任何人与我一起检查和验证。
自动加载文件上的自动加载器代码:
<?php
spl_autoload_register(function($className) {
include str_replace("\\","/","\classes").'/'.str_replace('\\',"/",$className).'.php';
});
?>
对索引文件的简单执行代码:
<?php
$person1 = new person();
$person1->SetName("Kai");
echo $person1->name;
?>
我的问题:出了什么问题,如何创建功能正常的自动加载功能,以及是否可以从我的程序中进行任何其他更正?
谢谢。
【问题讨论】: