• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

在依赖注入里如何进行多组件间的调用

php 搞代码 4年前 (2022-01-25) 22次浏览 已收录 0个评论
文章目录[隐藏]
<code><?phpclass Classroom{    public $room = [];    function addTeacher($teacher){        $this->room['teacher'] = $teacher;    }    function addStudents($student){        $this->room['student'] = $student;    }}class Teacher{    public $name='AAAA';    public $room=[];    function __construct($room){        $this->room = $room;    }    function sayHello(){        echo ' hello '.$this->room['student']->name.'  student '.PHP_EOL;    }}class Student{    public $name = 'BBB';    public $room=[];    function __construct($room){        $this->room = $room;    }    function sayHello(){        echo ' hello '.$this->room['teacher']->name. ' teacher '.PHP_EOL;    }}$Classroom = new Classroom;$Classroom->addTeacher( new Teacher($Classroom->room) );$Classroom->addStudents( new Student($Classroom->room) );$Classroom->room['teacher']->sayHello();$Classroom->room['student']->sayHello();</code>

这里的老师是获取不到学生名字的

我用容器将所有的应用组件包起来,然后,当应用组件之间调用的时候,就会有这样的问题。

前面注册进去的应用组件无法调用后面注册的应用,但是后面注册的应用是可以调用前面的。

那么如果说,前面的要使用后面的应用,这个问题怎么解决呢?

回复内容:

<code><?phpclass Classroom{    public $room = [];  <i style="color:transparent">@本文来源gaodai$ma#com搞$代*码6网</i><b>搞代gaodaima码</b>  function addTeacher($teacher){        $this->room['teacher'] = $teacher;    }    function addStudents($student){        $this->room['student'] = $student;    }}class Teacher{    public $name='AAAA';    public $room=[];    function __construct($room){        $this->room = $room;    }    function sayHello(){        echo ' hello '.$this->room['student']->name.'  student '.PHP_EOL;    }}class Student{    public $name = 'BBB';    public $room=[];    function __construct($room){        $this->room = $room;    }    function sayHello(){        echo ' hello '.$this->room['teacher']->name. ' teacher '.PHP_EOL;    }}$Classroom = new Classroom;$Classroom->addTeacher( new Teacher($Classroom->room) );$Classroom->addStudents( new Student($Classroom->room) );$Classroom->room['teacher']->sayHello();$Classroom->room['student']->sayHello();</code>

这里的老师是获取不到学生名字的

我用容器将所有的应用组件包起来,然后,当应用组件之间调用的时候,就会有这样的问题。

前面注册进去的应用组件无法调用后面注册的应用,但是后面注册的应用是可以调用前面的。

那么如果说,前面的要使用后面的应用,这个问题怎么解决呢?

<code>  <?php    class Classroom{      public $room = [];          function addTeacher($teacher){              $this->room['teacher'] = $teacher;          }          function addStudents($student){              $this->room['student'] = $student;          }  }    class Teacher{          public $name='AAAA';          public $room=[];          function __construct($room){              $this->room = $room;          }          function sayHello(){              echo ' hello '.$this->room->room['student']->name.'  sdent '.PHP_EOL;          } }  class Student{         public $name = 'BBB';         public $room=[];         function __construct($room){             $this->room = $room;         }         function sayHello(){             echo ' hello '.$this->room->room['teacher']->name. ' teacher '.PHP_EOL;         } }  $Classroom = new Classroom; $Classroom->addTeacher( new Teacher($Classroom) ); $Classroom->addStudents( new Student($Classroom) );  $Classroom->room['teacher']->sayHello(); $Classroom->room['student']->sayHello();</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在依赖注入里如何进行多组件间的调用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址