インターフェイスインスタンスを配列に返すPHPメソッド
P粉488464731
2023-09-01 13:40:43
<p>小さな質問がありますが、インターネット上で答えが見つかりません。php とインターフェイスがどのように機能するかよくわかりません。 </p>
<p>問題は、if(!variableinstanceofclass) があることです。ただし、ここでは、チェックされるクラスはインターフェイスであり、配列内にある必要があります。次のコードでわかるように、</p>
<pre class="brush:php;toolbar:false;">抽象クラス アクション
{
最終的なパブリック関数呼び出し(Bone $bone)
{
$sites = $this->getSites($bone);
foreach ($sites として $site) {
if (!$site サイトのインスタンス) {
throw new \Exception("無効なエントリ");
}
}
}
}
クラス BonesSites
{
パブリック関数 getSites(string $site): 配列
{
if ($site === 'エジプト') {
戻る [
[
'siteId' => 1、
'名前' => 'カイロ',
「骨」 => 「ティラノサウルスの骨」、
]、
[
'siteId' => 2、
'名前' => 'ギザ'、
'骨' => '猛禽類の骨',
]、
[
'siteId' => 3、
'名前' => 'アレクサンドリア',
「骨」 => 「ブロンキオサウルスの骨」、
]、
];
}
return ['error' => 'サイトが見つかりません!'];
}
}
インターフェースボーン
{
パブリック関数 getName(): 文字列;
}
インターフェースサイト
{
}</pre>
<p>インターフェイスを配列で返す方法はありますか? </p>
Site という追加のクラスを作成し、オブジェクトの配列を返す必要があります。
リーリー次に、サイト配列を返します:
リーリー