php - 如何从另一个类调用非静态方法

标签 php oop

这是我的第二个问题,我什至认为,我自己回答了上一个问题。无论如何,我有一个 OOP 的基本问题,关于如何从另一个类调用非静态方法。例子: 我们在文件 A.class.php 中有一个名为 A 的类

class A {

    public function doSomething(){
     //doing something.
    }

}

和另一个文件 B.class.php 中名为 B 的第二个类

require_once 'A.class.php';

class B {

    //Call the method doSomething() from  the class A.

}

我想现在一切都清楚了。如何:从类 A 调用方法 doSomething()?

最佳答案

B 类需要一个 A 类的对象来调用方法:

class B {
    public function doStuff() {
        $a = new A();
        $a->doSomething();
    }
}

或者,您可以在 B 之外创建 A 的实例并将其传递给 B 的构造函数以创建对它的全局引用(或将其传递给单独的方法,您可以选择):

class B {
    private $a = null;
    public function __construct($a) {
        $this->a = $a;
    }
    public function doStuff() {
        $this->a->doSomething();
    }
}

$a = new A();
$b = new B($a);

关于php - 如何从另一个类调用非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826126/

相关文章:

php - 仅当与缓存版本不同时才下载页面

php - 将对象转换为数组

c++ - 是否可以创建一个容器,其对象只占用 2 位?

unit-testing - 单元测试策略: redundancy using Black-box

php - 无法下载文件 Symfony 3.4 和 VueJS

php mktime 对同一日期给出不同的结果?

php - 将 $id 从 Blade 传递到 Controller 方法显示 Laravel 4

javascript - 如何在不单独列出它们的情况下为 javascript 中的所有事件添加事件监听器?

sql - 数据库中的多态性

vb.net - 如何使类成员对于创建的每个实例都是唯一的?