【发布时间】:2016-09-30 04:51:25
【问题描述】:
我有一个奇怪的问题...如果我以这种方式包含文件:
<?php
session_start();
session_regenerate_id();
foreach (glob("../class/*.php") as $filename)
{
echo "$filename\n";
include $filename;
}
foreach (glob("../utilities/*.php") as $filename) {
echo "$filename\n";
include $filename;
}
class ECommerce {
private $checker;
private $errorManager;
/**
* ECommerce constructor.
*/
function __construct() {
$this->checker = new Checker();
$this->errorManager = new ErrorManager();
}
网站不工作,什么时候可以工作
$ecommerce = new ECommerce();
它说
在路径中找不到类“ErrorManager”
我什么都想,当我想试试这个时:
<?php
session_start();
session_regenerate_id();
include "../class/Checker.php";
include "../class/User.php";
include "../utilities/ErrorManager.php";
class ECommerce {
private $checker;
private $errorManager;
/**
* ECommerce constructor.
*/
function __construct() {
$this->checker = new Checker();
$this->errorManager = new ErrorManager();
}
以这种方式,它可以工作,任何事情都会做它必须做的!
在我内心,“为什么”这个问题已经根深蒂固,我无法入睡(真的)。
为什么第一种方式适用于除 ErrorManager 之外的所有类?
之前谢谢你!
这里有 ErrorManager 类代码(它有类似 Checker 类的空白结构)
<?php
class ErrorManager
{
function __construct() {
}
function getErrorUserNameNotValid() {
return "Nome inserito non valido";
}
function getErrorUserSurnameNotValid() {
return "Cognome inserito non valido";
}
function getErrorUserEmailAlreadyExists() {
return "Email inserita non valida!";
}
function getErrorUserEmailNotValid() {
return "Email inserita non valida!";
}
function getErrorUserPasswordNotValid() {
return "Password inserita non valida! Inserisci una password che sia lunga tra i 6 e i 50 caratteri!";
}
function getErrorUserAddressNotValid() {
return "Indirizzo inserito non valido!";
}
function getErrorUserPhoneNumberNotValid() {
return "Numero telefonico inserito non valido! Inserisci solo numeri, senza trattini o caratteri speciali!";
}
}
我现在正在尝试使用 AutoLoader:
这是电子商务类:
spl_autoload_register('MyAutoloader::ClassLoader');
spl_autoload_register('MyAutoloader::LibraryLoader');
这是在 MyAutoloaderClass 中
class MyAutoloader
{
public static function ClassLoader($className)
{
$path = "../class/";
include $path.$className.'.php';
}
public static function LibraryLoader($className)
{
$path = __DIR__."/";
include $path.$className.'.php';
}
}
上面写着
include(../class/ErrorManager.php): 无法打开流: 没有这样的文件或目录
【问题讨论】:
-
@Brett 当然来了!
-
../utilities/ErrorManager.php 你确定这是正确的路径。实用程序文件夹与类文件夹位于同一文件夹中?
-
@Brett 是的!如果我包含一个 foreach 循环它不起作用,手动路径是 >_>
-
第二个循环的回声是什么意思?是否与手动输入相匹配?
-
@Brett 不,它只显示“../utilities/Dispatcher.php”作为类,它不显示“../utilities/ErrorManager.php”!