PHP 7 で複数の戻り値の型を指定することは可能ですか?
2023-08-07 09:10:44
質問
を返すことができるいくつかのメソッドを持っています。 のどちらかを返すことができます。 . 私はMCVを利用したフレームワークを使用しているので、特にこれらのいくつかの関数をリファクタリングすることは魅力的ではありません。
どちらか一方を返す戻り型を宣言し、それ以外では失敗することは可能でしょうか?
function test(): ?
{
if ($this->condition === false) {
return FailObject;
}
return SucceedObject;
}
どのように解決するのですか?
PHP 8+の時点では 組合型 :
function test(): FailObject|SuccessObject {}
もうひとつの方法は、PHP 4 以降のすべてのバージョンで利用可能なもので、 2 つのオブジェクトがひとつのインターフェイスを共有することです。例を挙げます。
interface ReturnInterface {}
class FailObject implements ReturnInterface {}
class SuccessObject implements ReturnInterface {}
function test(): ReturnInterface {}
この例では
ReturnInterface
は空です。その存在だけで、必要な戻り値の型宣言をサポートしています。
ベースとなる、おそらく抽象的な、クラスを使うこともできます。
私にとっては、この使用例では、インターフェースはユニオン型よりも明確で、より拡張性があります。例えば、もし私が後で
WarnObject
を拡張するように定義するだけでよいのです。
ReturnInterface
-- に更新するのではなく、すべてのシグネチャを
FailObject|SuccessObject|WarnObject
.
関連
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み] タイプヒントを使用して複数の戻り値の型を指定する方法
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] PHP7 の Nullable 型の戻り値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】警告:mysql_fetch_array()はパラメータ1がリソースであることを期待、ブール値は[重複]で与えられる]
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。
-
[解決済み] PHP 未定義関数への呼び出し
-
[解決済み] PHP7 の Nullable 型の戻り値