php实例化类

请问有没有办法,在A类的构造函数中实例化B类,从而实现在A类中所有方法都可以引用B类中的功能

<?php
class B{
function showme(){
return "i am B class function";
}
}
class A extends B{
function myshow(){

return B::showme()."--- this add by A function";
}
}
$test=new A();
echo $test->myshow();
?>

1、继承关键字 :extends
PHP类的继承,我们可以理解成共享被继承类的内容。PHP中使用extends单一继承的方法,请切忌!(非C++多继承)被继承的类我们叫做父类(基类)继承者成为子类(派生类)。
2、PHP继承的规则
CLASS1------>CLASS2------>CLASS3
依次被继承,class3拥有class1、class2所以功能和属性,避免方法和属性重名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-06-13
<?php

class b
{
public function test()
{
echo '我是 b::test()';
}
}

class a extends b
{
/*public function test()
{
parent::test();
echo '我是 a::test()';
}*/
}

$b = new a();
$b->test();


extends 关键字

追问

首先感谢回答
但是似乎不是我期望的类型,我是有一个有一个方法类 class A,和一个数据库操作实现类 class B,因为A的每一个方法都要调用数据库实现类里面的函数,所以,在A的每一个方法中都需要在调用的时候,实例化一下B类在调用,我是想问一下,有没有方法可以在A类的构造函数中实例化一次B类,然后A类中所有的函数都可以直接调用B类中的方法

追答<?php

class b
{
    public $link = null; // 保存 MySQLi handle
    
    public function __construct()
    {
        $this->link = new MySQLi('host', 'user', 'password', 'database');
    }
    
    public function query($sql)
    {
        return $this->link->query($sql);
    }
}

class a extends b
{
    public function findAll()
    {
        // $this->link 直接使用 handle ,无需要再次 实例化 MySQLi
    }
}

$a = new a;
$a->query('show tables'); // 调用 父类 方法

买本书,多看看

本回答被网友采纳
第2个回答  2017-06-13
__call()魔术方法可以吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网