PHP-Methode, die eine Schnittstelleninstanz in ein Array zurückgibt
P粉488464731
2023-09-01 13:40:43
<p>Ich habe eine kleine Frage, auf die ich im Internet keine Antwort finden kann, und ich bin mir nicht wirklich sicher, wie PHP und die Schnittstelle funktionieren. </p>
<p>Das Problem ist also, dass ich eine if(!variable-Instanz der Klasse) habe. Aber hier ist die geprüfte Klasse eine Schnittstelle und sollte sich in einem Array befinden, wie Sie im folgenden Code sehen können</p>
<pre class="brush:php;toolbar:false;">abstrakte Klassenaktion
{
Letzter öffentlicher Funktionsaufruf (Bone $bone)
{
$sites = $this->getSites($bone);
foreach ($sites als $site) {
if (!$site-Instanz von Site) {
throw new Exception("Ungültiger Eintrag");
}
}
}
}
Klasse BonesSites
{
öffentliche Funktion getSites(string $site): Array
{
if ($site === 'Egypt') {
zurückkehren [
[
'siteId' =>
'name' => 'Kairo',
'bone' => 'T-Rex-Knochen',
],
[
'siteId' =>
'name' => 'Gizeh',
'bone' => 'Raptors-Knochen',
],
[
'siteId' =>
'name' => 'Alexandria',
'bone' => 'Bronchiosaurus-Knochen',
],
];
}
return ['error' => 'Site nicht gefunden!'];
}
}
Schnittstelle Knochen
{
öffentliche Funktion getName(): string;
}
Schnittstellenseite
{
}</pre>
<p>Gibt es eine Möglichkeit, eine Schnittstelle in einem Array zurückzugeben? </p>
您需要创建一个名为Site的额外类,并返回一个对象数组。
然后返回站点数组: