请问有没有办法,在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所以功能和属性,避免方法和属性重名。
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();
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'); // 调用 父类 方法
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类中的方法
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()魔术方法可以吗