我是php的新手,但我会尝试直接进入重点。我有一个类叫做ConnectionManager
class ConnectionManager
{
function ConnectToDB()
{
//PDO connection code
}
}
和在我的其他经理InstitutManager我使用require_once($filename)来访问我的ConnectionManager函数
require_once('../manager/ConnectionManager.php');
class InstitutManager
{
protected $connInstance;
function _construct()
{
$this->connInstance = new ConnectionManager;
}
function getInstituts()
{
$conn = $connManager->ConnectToDb();
//retrieve instituts
}
}
问题是:我应该在我的InstitutManager中使用extends ConnectionManager
而不是require_once吗?为什么我要多使用其中一个呢?
编辑:更改InstitutManager类的代码
这样可以吗?或者我应该传递一个参数与我的连接已经实例化在function _construct($conn)
?
include_once读取源文件,在本例中,源文件中有ConnectionManager的类定义。你的扩展将类InstitutManager设置为继承类ConnectionManager,即InstitutManager获取ConnectionManager中的所有内容,然后可以定义自己对该基本结构的修改。这两个操作之间实际上没有任何关系,并且您的$connManager = new ConnectionManager操作是无意义的。
require_once 'file'.php'
只是意味着PHP解释器将获取名为file.php
的文件的内容,并将其转储到调用包含的位置。这有点像你选择了一个Word文件中的所有内容,然后点击复制并粘贴到另一个Word文件的顶部。
在您的情况下,您需要包含该文件,否则它将不知道在哪里找到ConnectionManager
类