PHP Conference Japan 2024

Stringable 介面

(PHP 8)

簡介

Stringable 介面表示一個類別具有 __toString() 方法。與大多數介面不同,Stringable 會隱含地存在於任何已定義魔術方法 __toString() 的類別上,儘管它可以而且應該明確地宣告。

它的主要價值是允許函式對聯合類型 string|Stringable 進行類型檢查,以接受字串原始值或可以轉換為字串的物件。

介面概要

interface Stringable {
/* 方法 */
public __toString(): string
}

Stringable 範例

範例 #1 Stringable 基本用法

此範例使用了建構子屬性提升

<?php
class IPv4Address implements Stringable {
public function
__construct(
private
string $oct1,
private
string $oct2,
private
string $oct3,
private
string $oct4,
) {}

public function
__toString(): string {
return
"$this->oct1.$this->oct2.$this->oct3.$this->oct4";
}
}

function
showStuff(string|Stringable $value) {
// 對於 Stringable 類型,這裡會隱式呼叫 __toString() 方法。
print $value;
}

$ip = new IPv4Address('123', '234', '42', '9');

showStuff($ip);
?>

上述範例會輸出類似以下的內容:

123.234.42.9

目錄

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top