从新类中的另一个类调用方法 - PHP

时间:2016-11-15 09:29:47

标签: php oop

我正在学习OOP PHP。我想将一个方法从另一个类调用到一个新类。

仅举个例子:

<?php 
class Aclass {
function aMethod($input)
     { 
       echo 'Hello a world '; 
     } 
} 
?> 

我想把方法aMethod从类“ Aclass ”调用到新类中。

<?php 
class Bclass {
//calling the method here?
} 
?> 

我试过延伸,仍然没有为我工作。

感谢。

2 个答案:

答案 0 :(得分:2)

在班级Bclass中,您应该创建一些功能。如果您正在创建Aclass的新实例,然后使用函数aMethod

示例

<?php 
class Bclass {       
    public function __construct() {
        $a = new Aclass();
        $a->aMethod("some_text");
    }
} 
?> 

其他方式是扩展Bclass。在这种情况下,您的班级Bclass会扩展Aclass中的所有内容,以便您可以将其与$this一起使用。

示例

<?php 
class Bclass extends Aclass {
    public function __construct() {
        $this->aMethod("some_text");
    }
} 
?> 

aMethod中的Aclass功能也应具有公开或受保护的可见性。如果您创建实例则公开,如果扩展则受保护。最后可以在手册中找到更多信息。

示例

<?php 
class Aclass {
public function aMethod($input) // protected if you will extend this class
     { 
       echo 'Hello a world '; 
     } 
} 
?> 

当然,您不仅可以在__construct中使用这两种方法,还可以在其他功能中使用这两种方法。

<强>手册

PHP: Visibility

PHP: Constructors and Destructors

答案 1 :(得分:0)

为此,我使用依赖注入。这只是一种说法&#34;在创建A&#34;时发送B课程对象的一种奇特方式。

换句话说,就像这样:

class typeA {
    public function __construct () {};
    public function test () {
        return 'Test string';
    }
}

class typeB {
    protected $testObj;

    public function __construct (typeA $testCase)  {
        $this->testObj = $testCase;
    }

    public function getTest () {
        return $this->testObj->test ();
    }
}

$a = new typeA ();
$b = new typeB ($a);
echo $b->getTest ();

构造函数用于创建一个准备 的对象,这就是为什么我只是将依赖存储在里面的原因typeB对象本身。然后,在getTest()方法中,我调用对象的test()方法,以便从中获取所需的数据。
以这种方式执行此操作将允许您编写灵活的OOP代码,可以根据需要轻松扩展和扩展。通过在那里创建对象来隐藏构造函数中的依赖项,可以创建隐藏和硬依赖。正确利用基于类的设计的可扩展性质的东西,如果不是正确的话,也会变得更加困难。