Méthode PHP qui renvoie l'instance d'interface dans un tableau
P粉488464731
P粉488464731 2023-09-01 13:40:43
0
1
466

J'ai une petite question à laquelle je ne trouve pas de réponse sur Internet et je ne sais pas vraiment comment fonctionnent php et l'interface.

Le problème est donc que j'ai une instance de classe if(!variable). Mais ici, la classe vérifiée est une interface et doit être dans un tableau, vous pouvez voir dans le code suivant

action de classe abstraite { dernier appel de fonction publique (Bone $bone) { $sites = $this->getSites($bone); foreach ($sites en tant que $site) { si ($site instanceof Site) { lancer une nouvelle exception ("Entrée invalide"); } } } } classe BonesSites { fonction publique getSites(string $site) : tableau { if ($site === 'Egypte') { retour [ [ 'siteId' => 'name' => 'Le Caire', 'bone' => 'Os de T-Rex', ], [ 'siteId' => 'name' => 'Gizeh', 'bone' => 'Os de rapaces', ], [ 'siteId' => 'name' => 'Alexandrie', 'bone' => 'Os de bronchiosaure', ], ]; } return ['erreur' => 'Site introuvable !']; } } interface Os { fonction publique getName() : chaîne ; } site d'interface { } 

Existe-t-il un moyen de renvoyer une interface dans un tableau ?

P粉488464731
P粉488464731

répondre à tous (1)
P粉447495069

Vous devez créer une classe supplémentaire appelée Site et renvoyer un tableau d'objets.

class Site { private int $siteId; private string $name; private string $bone; /** * @param int $siteId * @param string $name * @param string $bone */ public function __construct(int $siteId, string $name, string $bone) { $this->siteId = $siteId; $this->name = $name; $this->bone = $bone; } /** * @return int */ public function getSiteId(): int { return $this->siteId; } /** * @param int $siteId */ public function setSiteId(int $siteId): void { $this->siteId = $siteId; } /** * @return string */ public function getName(): string { return $this->name; } /** * @param string $name */ public function setName(string $name): void { $this->name = $name; } /** * @return string */ public function getBone(): string { return $this->bone; } /** * @param string $bone */ public function setBone(string $bone): void { $this->bone = $bone; } }

Renvoyez ensuite le tableau du site :

return [ (new Site(1, '开罗', 'T-Rex骨骼')), (new Site(2, '吉萨', '迅猛龙骨骼')), (new Site(3, '亚历山大', '腕龙骨骼')) ];
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!