PHP 的 Type Declarations (類型宣告)

程式技術
sharkHead

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

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

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

$personName = 'John';

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

這裡 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
written by
sharkHead

後端打工仔,在下班後喜歡研究各種不同的技術。稍微擅長 PHP,並偶爾涉獵前端開發。個性就像動態語言般隨興,但渴望做事能像囉嗦的靜態語言那樣嚴謹。

0 則留言