PHP - 类调用类外的函数

标签 php mysql oop

我正在开发一个俱乐部成员(member)注册网络应用程序,在 oop 方面我是一个相当新手。我遇到的问题是我需要在类外部调用一个函数,但我知道你不能在 PHP 中这样做,我需要以某种方式解决它。

此代码将演示我的问题所在:

成员.php

class member {
    private $id;
    private $member_num;
    private $name;
    ...
    ...

    public function __construct() { 
        $a = func_get_args();
        $i = func_num_args();
        if (method_exists($this,$f='__construct'.$i)) {
            call_user_func_array(array($this,$f),$a);
        } 
    }

    private function __construct1($f_id) { // Construct object by id-number
        // Code to retrieve the data from database
    }

我已经在名为 database_functions.php 的单独文件中编写了数据库操作代码,但我无法将该文件包含在类中。 我需要知道的是如何访问这些函数而不必在类中再次编写它们?(我以前用 VB.Net 编写过应用程序,我可以在其中使用当前项目的函数在类中。)

最佳答案

您可以将一个类扩展到另一个类,以访问子类中的父类函数和属性。不能像那样访问声明为私有(private)的函数。您还可以将另一个类的对象作为构造函数的参数传递给一个类。

如果你有一个类名 parent :

class parent{
    // properties and methods
}

如果你将它扩展到你的类,你就可以访问它的功能:

class child extends parent{
    // code
} 

$parent = new parent();
$child = new child($parent);

然后在子类中你可以使用:

function __construct($parent) {
        $this->connection = $parent;
}

然后在子类的其他函数中,您可以使用以下方法访问父类的方法

$parent->connection->function_name()

关于PHP - 类调用类外的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24604857/

相关文章:

php - 在数据库中创建3个表(检索数据php/mysql)

php - 我无法使用 PDO 访问数据库

php - 将播放列表轨道存储为 JSON 字符串或 mySQL 表

events - 什么时候使用事件?

php - 将数据存储到数据库的更短方法

php - session 已在 FOS User Bundle Registration Confirmation 中开始

mysql - 在MySQL中创建并插入临时表

mysql - nodejs访问mysql数据库的最佳实践

javascript - 扩展 window.location 以存储 GET 变量

matlab - MATLAB 中的属性初始化