"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment surmonter les erreurs d’indication de type pour les tableaux d’objets en PHP ?

Comment surmonter les erreurs d’indication de type pour les tableaux d’objets en PHP ?

Publié le 2024-11-09
Parcourir:295

How to Overcome Type Hinting Errors for Arrays of Objects in PHP?

Surmonter les erreurs d'indication de type pour les tableaux d'objets

Dans le domaine du code PHP, on peut rencontrer le problème de l'indication de type pour les tableaux d'objets, en particulier lorsqu'un argument passé à une fonction devrait être un tableau. Cela peut entraîner une erreur fatale, indiquant une inadéquation entre le type attendu et la valeur fournie.

Une solution à ce défi consiste à définir un type de tableau personnalisé qui étend le \ArrayObject natif et applique les exigences d'adhésion. Par exemple, considérons le type de tableau personnalisé suivant pour les objets Foo :

class ArrayOfFoo extends \ArrayObject {
    public function offsetSet($key, $val) {
        if ($val instanceof Foo) {
            return parent::offsetSet($key, $val);
        }
        throw new \InvalidArgumentException('Value must be a Foo');
    }
}

En utilisant ce type de tableau personnalisé, nous pouvons garantir que seuls les objets Foo sont autorisés en tant que membres d'un tableau. Voici un exemple illustrant son utilisation :

function workWithFoo(ArrayOfFoo $foos) {
    foreach ($foos as $foo) {
        // etc.
    }
}

$foos = new ArrayOfFoos();
$foos[] = new Foo();
workWithFoo($foos);

Cette approche permet une indication de type stricte pour les tableaux d'objets, empêchant l'introduction de valeurs non valides et garantissant l'intégrité de votre code. De plus, la bibliothèque Haldayne fournit une solution plus complète qui gère les vérifications des exigences d'adhésion pour les types de tableaux personnalisés, offrant ainsi une plus grande flexibilité.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729205835. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3