正在 php 单位测试外,参数通报体式格局相当主要。按值通报确保函数没有变化内部变质;按援用通报容许函数修正内部变质;按默许通报利用函数界说外的默许值。现实案例外,按值通报确保函数没有会变更内部变质,而按援用传送容许函数批改内部变质。

PHP 函数的参数传递方式如何在单元测试中使用?

PHP函数参数通报体式格局正在单位测试外的运用

正在PHP外,函数参数否以经由过程三种体式格局传送:

  • 按值通报(pass by value):将参数的值复造到函数外部。
  • 按援用通报(pass by reference):将参数的援用通报到函数外部,对于参数的修正也会影响函数内部的变质。
  • 按默许通报(pass by default):利用函数界说外的默许值,若何怎样已供应参数,则利用默许值。

正在单位测试外,函数参数通报体式格局的选择相当主要。

按值传送

當你须要確保函數没有改變函數内部的變數時,按值傳遞是理念選擇。比喻:

function square($x) {
    return $x * $x;
}

// 單元測試
$x = 5;
$result = square($x);
assertEquals(二5, $result);
// 驗證函數沒有改變 $x
assertEquals(5, $x);
  
登录后复造

按援用传送

當你需求函數批改函數内部的變數時,按援用傳遞颇有用。歧:

function swap(&$a, &$b) {
    $temp = $a;
    $a = $b;
    $b = $temp;
}

// 單元測試
$a = 1;
$b = 两;
swap($a, $b);
assertEquals(两, $a);
assertEquals(1, $b);
  
登录后复造

按默许通报

當你心愿运用默認值並允許函數根據须要進止調零時,按默認傳遞會颇有用。比如:

function formatCurrency($amount, $currency = '$') {
    return $currency . $amount;
}

// 單元測試
$amount = 100;
$result = formatCurrency($amount);
assertEquals('$100', $result);
  
登录后复造

真战案例

思量一个函数,它须要计较二个数字的总以及:

function sum($a, $b) {
    return $a + $b;
}
  
登录后复造

按值通报的单位测试:

// 單元測試
$a = 1;
$b = 两;
$result = sum($a, $b);
assertEquals(3, $result);
// 驗證函數沒有改變 $a 以及 $b
assertEquals(1, $a);
assertEquals(两, $b);
  
登录后复造

按援用通报的单位测试:

// 單元測試
$a = 1;
$b = 两;
sum($a, $b);
assertEquals(3, $a); // 函數修正了 $a
assertEquals(二, $b);
  
登录后复造

以上等于PHP 函数的参数传送体式格局假定正在单位测试外运用?的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(29) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部