php函式之如何用預設引數和可變長度引數方式傳遞?

markriver發表於2021-09-11
上一篇文章中我們瞭解了向函式傳遞引數中的引用傳遞引數,有需要的請看《》。這次我們向大家介紹向函式傳遞引數中的另外兩種傳遞方式,有需要的可以參考參考。

向函式傳遞引數的方式有四種,分別是值傳遞、引用傳遞、預設引數和可變長度引數。之前兩篇文章介紹了值傳遞和引用傳遞,這次我們就來介紹預設引數和可變長度引數。

預設引數

首先來看一個小例子。

<?php
  function add($a, $b=56){
    echo $a.' + '.$b.' = '.($a+$b).'<br>';
  }
  add(11);
  add(37, 29);
?>

輸出結果是

11 + 56 = 67
37 + 29 = 66

這個例子可以很清晰的看到,當提供的引數為一個,並且另一個引數有預設值時,將直接進行運算;若提供的引數為兩個,則按提供的值來進行運算。

預設引數是為函式的一個或多個形式引數指定預設值。如果呼叫函式時沒有傳入相應的值,函式將使用此預設值,這樣可以避免呼叫時沒有引數的錯誤,使一些程式更加合理。如果傳入相應的引數,將替換預設值。

可變長度引數

先舉一個小栗子。

<?php
  function test(...$arr){
    print_r($arr);
  }
  echo '<pre>';
  test(1, 2, 3, 4);
  test(5, 6, 7, 8, 9, 10);
?>

輸出結果是

Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
Array
(
[0] => 5
[1] => 6
[2] => 7
[3] => 8
[4] => 9
[5] => 10
)

這個例子可以很清晰的看到,兩次給函式提供的引數值不相同,但是觀察結果會發現輸入的數值都輸出了。我們看函式本身,發現它與普通函式有所不同,它新增了“...”。這是可變長度引數的一大特點。

在 PHP 5.6 及以後的版本中,函式的形式引數可使用…來表示函式可接受一個可變數量的引數,可變引數將會被當作一個陣列傳遞給函式。

你想要的php知識都在這裡哦→

以上就是php函式之如何用預設引數和可變長度引數方式傳遞?的詳細內容,更多請關注php中文網其它相關文章!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/818/viewspace-2827670/,如需轉載,請註明出處,否則將追究法律責任。

相關文章