PHP 的 Type Declarations(類型宣告)

sharkHead 程式技術 6個月前 • 0

在介紹 PHP 的 Type Declarations (類型宣告)前,先來簡單解說一下引數與參數的意思

  • 引數(Argument):用於呼叫函式(function)時所給的變數
  • 參數(Parament):是函式中要使用的變數
<?php

// 這裡的 $name 就是參數
public function sayHello(string $name): string
{
    return 'Hello' . $name
}

$person = 'John';

// 這裡的 $person 就是引數
echo sayHello($person);

這裡 sayHello(string $name) 中的 string
就是一種 type Declarations(類型宣告),也可以稱為 Type Hint(類型提示)
目的在說明 $name 的類型為 string,如果使用非 string 類型的引數來呼叫函式,程式就會報錯
PHP 的 Clean Code 建議參數都應該使用類型宣告,方便於日後維護
如果這個參數可能為 string 類型或是 NULL,可以在 string 前面加上一個問號

<?php

// 在 string 前面加上一個問號,代表 $name 這個參數可為 string 或是 NULL
public function sayHello(?string $name): string
{
    return 'Hello' . $name
}

除了可以在參數上可以做類型宣告之外,PHP 也可以在函式返回的值做類型宣告
sayHello(?string $name): string 中的 string,就是 Return Type Declarations(返回類型宣告)
目的在說明此函式返回的值為 string,如果返回的值不為 string,程式就會報錯
如果返回的值可以為 string 或是 NULL,那麼跟剛剛一樣,我們可以在 string 前面加上一個問號

<?php

// 在冒號後面的 string 前面加上一個問號,代表此函式返回值的類型可以為 string 或是 NULL
public function sayHello(?string $name): ?string
{
    return $name
}

sharkHead

PHP 與 Python 菜雞工程師
最近在努力學習 TypeScript,希望可以突破慧根的限制