gpt4 book ai didi

PHP 自动加载类

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:43 25 4
gpt4 key购买 nike

这是我第一次使用自动加载,但我一直收到错误消息说找不到我的类:

Fatal error: Class 'Classes\Sunrise\DB' not found in my\sample\path\.sunrise.app\init.php on line 52

编辑: 第 52 行是我使用 DB 类中的静态方法的地方。出于某种原因,PHP 说找不到 DB 类。

我的结构:

order (Folder)
+ index.php
.sunrise.app
+ init.php
+ ordersetup.php
+ Classes (Folder)
+ Sunrise (Folder)
+ DB.php

文件 init.php 包含我的自动加载器并包含在文件 ordersetup.php 中,后者又包含在 order/index.phpinclude_once '../.sunrise.app/ordersetup.php'; 在文件 .sunrise.app/init.php 我需要使用 DB 类但遇到了上面显示的错误。我做错了什么?

我在 .sunrise.app/init.php 中的自动加载器:

function my_autoload($class_name) {
include $class_name. '.php';
}
spl_autoload_register('my_autoload');

我在 classes/Sunrise/DB.php 中的数据库类:

<?php namespace Classes\Sunrise;

use PDO;

class DB { ... }

编辑文件夹Sunrise在文件夹Classes

最佳答案

因为分隔符是 \ 你需要用操作系统的正确目录分隔符替换它们,如果这是一个 linux 操作系统那么它们需要是 //p>

function my_autoload($class_name) {
$class_name = str_replace("\\","/",$class_name);
require "../.sunrise.app/".$class_name. '.php'; //you have to use path relative to
// order or use a absolute path
// /var/www/.sunrise.app/
}

此外,如果 linux 系统确保类的大小写与文件夹的大小写匹配,因为 linux 区分大小写

关于PHP 自动加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com