【问题标题】:how to include a php function in a class?如何在一个类中包含一个 php 函数?
【发布时间】:2012-02-15 06:57:13
【问题描述】:

我有一门课:

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
    }
}

这可能吗?

谢谢

【问题讨论】:

  • 你在尝试的时候遇到了什么困难?
  • 好吧,我什至不确定这是否可能,需要类中的其他函数,包含的函数不是类,那我将如何使用它?

标签: php class function require-once


【解决方案1】:

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

其次,

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
    }
}

【讨论】:

  • 你认为我可以添加一个_construct 以在每次上课时调用require_once("getfile.php");
  • 你可以,但是如果函数应该在全局范围内工作,那么你应该将它包含在全局范围内。如果你只需要在本地,在__construct或者你不想使用的指定方法中进行。
【解决方案2】:

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

如果您尝试将mixins 添加到课程中,请使用you should read this

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

class Connect extends Connector
{
  ...
}

class Connector
{
  public function connect($host, $database) {
  ...
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 2016-03-12
    • 1970-01-01
    • 2018-11-30
    • 2010-12-31
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多