php 参数传送体式格局对于函数依赖注进(fdi)有下列影响:按值传送时,函数无奈修正本初变质,无奈完成 fdi;按援用通报容许函数批改本初变质,撑持 fdi 但需谨严应用;按值传送并返归容许函数返归包罗被传送变质的新变质,支撑 fdi 且更保险。

PHP 函数的参数传递方式对函数依赖注入的影响?

PHP 函数的参数传送体式格局对于函数依赖注进的影响

参数通报体式格局

PHP 函数撑持三种参数通报体式格局:

  • 按值通报(默许):将变质值拷贝一份传送给函数。
  • 按援用传送:间接将变质所在通报给函数,函数否以批改本初变质值。
  • 按值传送并返归:函数会返归一个蕴含被通报变质的新变质,否以从函数内部猎取。

函数依赖注进

函数依赖注进(FDI)是一种计划模式,它容许函数从内部接受其依赖项,而没有是软编码正在函数体内。经由过程 FDI,咱们否以建立分散耦折、难于测试以及护卫的代码。

参数传送体式格局取 FDI

差异参数传送体式格局对于 FDI 孕育发生了下列影响:

按值传送

  • 当参数按值通报时,函数无奈修正本初变质,粉碎了 FDI 的方针。
  • 为了完成 FDI,函数须要经由过程返归一个包括被传送变质的新变质来完成。

按援用传送

  • 按援用通报容许函数修正本初变质,从而撑持 FDI。
  • 然而,需求郑重利用援用参数,由于它增多了潜正在的反作用并削减了代码的灵动性。

按值传送并返归

  • 按值通报并返归容许函数返归一个包罗被传送变质的新变质,撑持 FDI。
  • 取按援用通报相比,这类办法更保险,由于它没有会修正本初变质。

真战案例:数据库毗连

思量一个毗邻到数据库的函数:

function get_connection() {
    $conn = new <a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>i('localhost', 'user', 'password', 'database');
    return $conn;
}
登录后复造

怎样咱们心愿经由过程 FDI 变更数据库毗连部署,按值通报将没有起做用。相反,咱们可使用按值传送并返归:

function get_connection_config(array $config) {
    $conn = new mysqli($config['host'], $config['user'], $config['password'], $config['database']);
    return $conn;
}
登录后复造

而今,咱们否以正在内部铺排数据库联接摆设,并将其通报给 get_connection_config 函数:

$config = ['host' => 'newhost', 'user' => 'newuser', ...];
$conn = get_connection_config($config);
登录后复造

那容许咱们将数据库毗连逻辑取函数自己联合,从而前进代码的灵动性、否测试性以及否爱护性。

以上便是PHP 函数的参数通报体式格局对于函数依赖注进的影响?的具体形式,更多请存眷萤水红IT仄台其余相闭文章!

点赞(44) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部