Méthode PHP qui renvoie l'instance d'interface dans un tableau
P粉488464731
P粉488464731 2023-09-01 13:40:43
0
1
622
<p>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. </p> <p>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</p> <pre class="brush:php;toolbar:false;">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 { }</pré> <p>Existe-t-il un moyen de renvoyer une interface dans un tableau ? </p>
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