2012-05-24 33 views
-1

如何指定确切的绝对路径?PHP找不到我的课程?

文件在这里。我指定这样的:

include "/home/core/public_html/d/core/source/class.Control.php"; 

然而,它告诉我,事实并非如此。

* 致命错误:类 '控制' 在/home/core/public_html/d/core/source/class.ControlEntry.php未发现行*

代码:

<?php 
class ControlEntry 
{ 
    private $control_object; 

    function __construct($control_object) 
    { 
     $this->control_object = $control_object; 
    } 
    public function actuate() 
    { 
     if(isset($_POST['ajax_type'])) 
     { 
      $this->control_object->ajax($_POST['ajax_type']); 
     } 
     else 
     { 
      $this->control_object->reload(); 
     } 
    } 
} 
include "/home/core/public_html/d/core/source/class.Control.php"; // Can not find this f***ing file even though it is there. 
$control_entry_object = new ControlEntry(new Control()); 
$control_entry_object->actuate(); 

故障排除列表

+1

也许类根本就没有在这个文件? –

+0

也许你正在寻找在错误的路线,错误的是另一类 –

+0

尝试使用'require'而不是包括,那么如果文件不是发现你会得到一个错误。目前,它看起来像没有找到类。 – n00dle

回答

3

错误来源于class.ControlEntry.php。确保在加载ControlEntry之前加载class.Control.php

1

您在包括"/home/domain/public_html/d/core/source/class.Control.php";,但错误说的是/home/domain/public_html/d/core/source/class.ControlEntry.php。你确定你包含正确的文件或实例化正确的类吗?

1

那是绝对路径。它看起来不像一个bug。其实它说这个班没有找到。它没有说文件没有找到。我想在你的class.ControlEntry.php第3行对Control的引用。在使用它之前,您需要包含包含控件的文件。

+0

呼叫和包含之间有区别。您需要包含定义类的代码文件(使用'include')。然后你可以调用/使用Control。 – konqi

+0

如果你在一台linux机器上工作(我猜你会这样做),我会要求你检查Web服务器用户是否有权读取该文件/目录。为了测试目的,您可以在/ home/core/public_html/d/core/source /中使用'chmod 777 *'。 同样是/ home /核心/的public_html/d /核心/源/您的www根里面? – konqi