如何在PHP中引用类?

时间:2011-07-31 04:34:53

标签: php class codeigniter

我正在尝试进行一些PHP开发,但我无法弄清楚如何在另一个PHP文件中引用我的类。我使用CI作为我的MVC框架,在'Application'下我创建了一个名为'domain'的文件夹,我将放置我的域特定对象。

我在名为'User.php'的文件中定义了一个名为'user'的类。所以'domain / User.php'

我试图在另一个PHP文件中引用这个类:

<?php

require('domain/User.php');

..

?>

这引发了这个错误:

  

无法打开所需的'domain / User.php'(include_path ='。:/ usr / lib / php')

所以,显然,我不知道这是如何在PHP中完成的。那么有人可以帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

该文件很可能不存在(在预期的位置)。

首先,您应该找出当前文件的位置。为此,请在echo __FILE__;之前使用require。然后,确保domain/User.php实际上在预期位置可用。

但是,如果您的包含位于完全不同的位置,则应为PHP设置正确的include_path。您可以通过调整php.ini文件中的设置来完成此操作。

答案 1 :(得分:0)

您需要确保引用正确的路径。如果您正在创建新的CI控制器(即扩展核心CI_Controller的控制器),您可以使用以下方法轻松解决此问题:

include (APPPATH . 'domain/User.php');

否则,您可以使用以下命令查找当前文件的绝对路径:

$current_path = dirname(__FILE__);

允许您引用您想要的任何外部文件相对于您正在使用的当前文件:

include ($current_path . '../domain/User.php');

然后,您可以毫无困难地引用所有外部控制器和方法。如果要在外部文件中运行function_a(),则需要使用:

$this->user = new User();
$this->user->function_a();

您可以将这些加载放入__construct函数中,以避免重复代码。