Maison  >  Article  >  développement back-end  >  [classes et objets php] contraintes de type

[classes et objets php] contraintes de type

不言
不言original
2018-04-17 10:09:101306parcourir

Le contenu de cet article concerne les contraintes de type [classes et objets php]. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Contraintes de type

.

PHP 5 peut utiliser des contraintes de type.

Les paramètres de la fonction peuvent être spécifiés comme :

  • Objet (précisez le nom de la classe dans le prototype de la fonction)

  • Interface

  • tableau (PHP 5.1)

  • appelable (PHP 5.4)

si vous utilisez NULL comme valeur par défaut du paramètre, alors NULL peut toujours être utilisé comme paramètre réel lors de l'appel de la fonction.

Si une classe ou une interface spécifie une contrainte de type, toutes ses sous-classes ou implémentations le font également.

Les contraintes de type ne peuvent pas être utilisées pour les types scalaires tels que int ou string. Les traits ne sont pas non plus autorisés.

Example #1 类型约束示例

<?php//如下面的类class MyClass
{    /**
     * 测试函数
     * 第一个参数必须为 OtherClass 类的一个对象
     */
    public function test(OtherClass $otherclass) {
        echo $otherclass->var;
    }    /**
     * 另一个测试函数
     * 第一个参数必须为数组 
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}    /**
     * 第一个参数必须为递归类型
     */
    public function test_interface(Traversable $iterator) {
        echo get_class($iterator);
    }    /**
     * 第一个参数必须为回调类型
     */
    public function test_callable(callable $callback, $data) {
        call_user_func($callback, $data);
    }
}// OtherClass 类定义class OtherClass {    public $var = &#39;Hello World&#39;;
}
?>

Recommandations associées :

[classes et objets php] copie d'objet

[classes et objets php] méthodes magiques

[classes et objets php] Traverse

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn