-1

今天我有一个小问题,我试图在 php 类中调用一个函数(Auth.php->GetNumOnline())

我试图从一个处理我所有“统计信息”的类中调用它。

这是我的代码:统计类

class statReciever
{

public function GetNumOnline()
{
    set_include_path("{$_SERVER['DOCUMENT_ROOT']}");
    include("../Authentication/Auth.php");
    $auth = new Auth();
    return $auth->NumOnline();
}
}

这是 Auth 类的精简版

class Auth
{
 public function NumOnline()
 {
    return 0;
 }
}

这是我的目录的屏幕截图: 屏风

这是我收到的错误:[Sun Mar 10 14:35:25 2013] [error] [client MASKED ] PHP Warning: include(./../Authentication/Auth.php): failed to open stream: No such file或第 16 行 /var/www/example.com/public_html/includes/statReciever.php 中的目录,引用者:http ://example.com/

有人知道怎么修这个东西吗?

谢谢

4

2 回答 2

1

include_path 总是从第一个脚本的工作目录计算出来的。

用于__DIR__始终使用类的目录作为基本路径。

include(__DIR__ . "/../Authentication/Auth.php");
于 2013-03-10T14:45:38.623 回答
1

您可以随时使用:

include($_SERVER['DOCUMENT_ROOT'].'/projectFolder/Authentication/Auth.php');

包括您的文件。

当您的项目开始index.php并且您想要包含一个包含另一个文件的文件时......然后确保另一个文件的路径是绝对的!(根据index.php位置)

例如,我有一个名为的常量文件config.php,我总是在其中定义变量,例如:

define('PROJECT_LOCATION', $_SERVER['DOCUMENT_ROOT'].'/projectFolder');

然后我使用这个常量来包含我的文件,例如:

include(PROJECT_LOCATION.'/Authentication/Auth.php');

或类似的东西...

于 2013-03-10T14:46:56.510 回答