面向对象的PHP程序中的自动加载问题

问题描述

大家下午好。

在过去3天里,我一直在努力使用PHP自动加载功能,该功能旨在简化和统一程序的类文件,这些文件均位于一个执行文件中。对于上下文,我目前正在this tutorial videos处学习PHP的OOP观点,不仅可以在上大学之前进行PHP OOP项目之前进一步了解PHP对OOP的理解,而且还可以尝试创建自己的PHP程序,所以ELI5也可以关于我的解决方案,请。

从我从以下视频中学到的知识:Video 1Video 2来看,我根据所学知识编写的自动加载代码似乎可以正常工作,但是,它给出了两个警告: / p>

警告: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;

?>

我的问题:出了什么问题,如何创建可正常运行的自动加载功能,我的程序是否可以进行其他更正?

谢谢。

解决方法

尝试将<PropertyGroup> <DefaultItemExcludes>node_modules/**;$(DefaultItemExcludes)</DefaultItemExcludes> </PropertyGroup> <ItemGroup> <Compile Remove="ClientApp\**" /> <Content Remove="ClientApp\**" /> <EmbeddedResource Remove="ClientApp\**" /> <None Remove="ClientApp\**" /> </ItemGroup> 以及您的应用程序所在的文件夹中的子文件夹包括在路径中。

$_SERVER['DOCUMENT_ROOT']

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...