1

我有一堂课:

class Connect
{
    public function auth()
    {
        ... do something
    }
}

我有一个函数:getfile.php

<?php
require_once($GLOBALS['path']."connect.php");
?>

我有:connect.php

<?php
function connect( $host, $database )
{
   database connection here
}
?>

我如何在我的类中使用这个函数,如下所示:

class Connect
{
    require_once("getfile.php");
    public function auth()
    {
        connect( $host, $database )
        ... do query
    }
}

这可能吗?

谢谢

4

2 回答 2

3

您不能以这种方式将函数添加到类中。

如果你想添加mixins到一个类中,你应该阅读这个

否则,您应该通过创建基类(或抽象类)并扩展它来坚持标准的 OOP 实践:

class Connect extends Connector
{
  ...
}

class Connector
{
  public function connect($host, $database) {
  ...
  }
}
于 2012-01-20T18:22:35.960 回答
2

在全局范围内声明的函数是全局可用的。因此,您不必在需要的地方包含它,只需在脚本开头包含带有函数的文件即可。

第二,

class Connect
{
    require_once("getfile.php");
    public function auth()
    {
        connect( $host, $database )
        ... do query
    }
}

这只是胡言乱语;您不能在方法之外的类内部执行某些操作。如果您真的只想在该特定方法中需要该特定文件时才包含某些内容,请执行以下操作:

class Connect
{
    public function auth()
    {
        require_once("getfile.php");
        connect( $host, $database )
        ... do query
    }
}
于 2012-01-20T18:23:47.510 回答