iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
自我挑戰組

PHP 沿途的風景系列 第 23

[Day 23] PHP Argument 和 Parameter 差異

  • 分享至 

  • xImage
  •  

PHP Argument 和 Parameter 差異

參數 (Parameter) 和 引數 (Argument) ,是我在寫 PHP 時,曾經的一處風景,參數和引數在不同的編程語言中可能會具有不同的含義,因此,撰寫 PHP 之初,免不了的得到 PHP 文件 爬文: Functions

我會搞混這兩個中文翻譯的 名稱用途,因此,我都是記英文單字名稱 (Parameter, Argument) 和 Parameter, Argument 代表的意思!
我曾經的問題,想不到在 stackoverflow 上,也有大篇幅的討論過,如 What's the difference between an argument and a parameter? 一文,裡面對於 Parameter, Argument 的解釋: A parameter is a variable in a method definition. When a method is called, the arguments are the data you pass into the method's parameters.

用程式解釋 Parameter 和 Argument 功能

剛開始學習 PHP 時,正在學習的是 function 不懂為什麼這裡提到的是 method ? 經過時間的推移,久而久之就會知道這只是名詞上的不同,function 和 method 其實是在講同一件事。
例如,寫到 PHP 的 OOP (Object-oriented programming; 物件導向設計) 時,class 裡面用到的 function 又稱為 method。

以下是我在 stackoverflow 上,看到比較好懂的 Parameter 和 Argument 文字解釋:

  • Parameter is the variable in the declaration of the function.
  • Argument is the actual value of this variable that gets passed to the function.

程式解釋:

<?php
public function add($a, $b){
  return $a + $b;
}

echo add(4, 5); // 9
  • $a$bfunction add() 的參數(parameter),它們是 function 定義中的命名變數,用於接收傳遞給 function 的值。

  • 45function add() 的引數(argument),它們是在 function 調用時傳遞給 function 的實際值。

function add(4, 5) 被呼叫時,$a 被賦值為 4$b 被賦值為 5,函數返回它們的和 9,所以 echo add(4, 5); 會輸出 9
換句話說,parameter 是$a 時,依照位置的對應關係 argument 是 4 不會是 5 ,這個稱作 parameter position. 我之後在 Named Arguments 一文中,分享 PHP 8.0.0 以後,PHP function 新增的功能。

Function Argument List with trailing Comma

PHP 8.0.0 以後,function 的 Argument List 可以尾隨 逗號 如下:

<?php
function takes_many_args(
    $first_arg,
    $second_arg,
    $a_very_long_argument_name,
    $arg_with_default = 5,
    $again = 'a default string', // This trailing comma was not permitted before 8.0.0.
)
{
    // ...
}

我是 Function Argument List with trailing Comma 的受益者,我是從 PHP 8.0 開始學習起,也就是說,我直接受益者,Argument List 很長 或包含 長變數名稱 的情況下,可以方便地垂直列出參數。

結語

感謝好想工作室-Backend Camp M 同學 和 J 同學,讓我再次回憶當初 PHP Argument 和 Parameter 的風景,最近想工作室-Backend Camp 開始招生囉!


參考文章

1 PHP Functions
2 What's the difference between an argument and a parameter?


上一篇
[Day 22] Call API: SystemResponse 結合 Resource Collections
下一篇
[Day 24] PHP 8.0.0 之好用功能 Named Arguments
系列文
PHP 沿途的風景30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言