dpkpaxhzffixp8426 2013-12-05 17:47
浏览 8
已采纳

用于访问子类的子类

I have a single class that calls aload of other classes;

require_once('class.database.php');
require_once('class.users.php');

Class Bootstrap {

     public $db;
     public $users;

     public function __construct() { $this->db = new Database(); $this->users = new Users(); }
}

$est = new Bootstrap();

And that class works fine, but lets say in my Database class I have;

 class Database {
     public function __construct() { }

     public function foo() {
         echo 'hi';
     }
 }

And then from the users class, I'd like to reference the function, but I wanna keep the code clean and therefore want to steer away from statics.

I've tried referencing it such as:

 * $est->db->foo();
 * $db->foo();

But none of them work, could somebody please show me the correct way to call it. Thanks!

  • 写回答

2条回答 默认 最新

  • douzhaochan6468 2013-12-05 17:50
    关注

    Currently you have given yourself no way to access the specific db instance inside Bootstrap from within the Users class.

    You could:

    1. Hand the db instance to Users when you instantiate:

      $this->users = new Users($this->db);

    2. Hand the Users class a reference to Bootstrap when you instantiate:

      $this->users = new Users($this);

    3. Have the users class setup its own database connection:

      class Users { public function __construct() { $this->db = new Database(); } }

    4. Setup statics

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)