abstract:<?php // 工具類 class Db { public function conn() { return '數(shù)據(jù)庫連接成功!<br>'; } } class Validate { public function check() { return '數(shù)據(jù)驗(yàn)證成功!
<?php // 工具類 class Db { public function conn() { return '數(shù)據(jù)庫連接成功!<br>'; } } class Validate { public function check() { return '數(shù)據(jù)驗(yàn)證成功!<br>'; } } class View { public function show() { return '數(shù)據(jù)展示成功!<br>'; } } // 創(chuàng)建容器,將類與類的實(shí)例化過程綁定到容器中 class Container { protected $container = []; public function bind($validate,Closure $param) { $this->container[$validate] = $param; } public function make($validate,$param = []) { return call_user_func_array($this->container[$validate],[]); } } // 服務(wù)注冊,bind將可能用到的工具類全部綁定到容器中 $container = new Container(); $container->bind('db',function(){ return new Db(); }); $container->bind('validate',function(){ return new Validate(); }); $container->bind('view',function(){ return new View(); }); // 依賴容器 class User { public function login(Container $container) { echo $container->make('db')->conn(); echo $container->make('validate')->check(); echo $container->make('view')->show(); } } $user = new User(); echo $user->login($container);
老師我想問:Container類中的make()方法中的call_user_func_array()執(zhí)行的是哪個(gè)函數(shù)???是make()嗎?
Correcting teacher:查無此人Correction time:2019-04-23 13:48:31
Teacher's summary:完成的不錯(cuò)。有問題可以提交工單,作業(yè)中你無法追問。 call_user_func_array有兩個(gè)參數(shù),第1個(gè)參數(shù)是一個(gè)字符串,表示要調(diào)用的函數(shù)名,第2個(gè)參數(shù)是一個(gè)數(shù)組,表示參數(shù)列表,按照順序依次會傳遞給要調(diào)用的函數(shù)。