Contraintes de type en PHP

*文
Libérer: 2023-03-18 15:34:01
original
1634 Les gens l'ont consulté

Cet article présente principalement l'introduction des contraintes de type en PHP. Les contraintes de type peuvent être implémentées dans les méthodes et fonctions de classe PHP, mais les paramètres ne peuvent spécifier que quatre types : classe, tableau, interface et appelable. et PHP ne peut pas contraindre les types scalaires ou autres types. J'espère que cet article sera utile à tout le monde.

Les contraintes de type peuvent être implémentées dans les méthodes et fonctions de classe PHP, mais les paramètres ne peuvent spécifier que quatre types : classe, tableau, interface et appelable. Les paramètres peuvent par défaut être NULL. PHP ne peut pas contraindre les types scalaires ou d'autres types.

L'exemple suivant :

<?php
 
class Test
{
    public function test_array(array $arr)
    {
        print_r($arr);
    }
 
    public function test_class(Test1 $test1 = null)
    {
        print_r($test1);
    }
 
    public function test_callable(callable $callback, $data)
    {
        call_user_func($callback, $data);
    }
 
    public function test_interface(Traversable $iterator)
    {
        print_r(get_class($iterator));
    }
 
    public function test_class_with_null(Test1 $test1 = NULL)
    {
 
    }
}
 
class Test1{}
 
$test = new Test();
 
//函数调用的参数与定义的参数类型不一致时,会抛出一个可捕获的致命错误。
 
$test->test_array(array(1));
$test->test_class(new Test1());
$test->test_callable(&#39;print_r&#39;, 1);
$test->test_interface(new ArrayObject(array()));
$test->test_class_with_null();
Copier après la connexion

Alors, comment contraindre les types scalaires ?

La bibliothèque d'extension PECL fournit l'extension SPL Types pour implémenter les contraintes de type entier, float, bool, enum et string.

$int  = new  SplInt ( 94 );
 
try {
     $int  =  &#39;Try to cast a string value for fun&#39; ;
} catch ( UnexpectedValueException $uve ) {
    echo  $uve -> getMessage () .  PHP_EOL ;
}
 
echo  $int  .  PHP_EOL ;
/*
运行结果:
Value not an integer
94
*/
Copier après la connexion

Les types SPL réduiront certaines flexibilités et performances, alors réfléchissez-y à deux fois dans les projets réels.

Recommandations associées :

Types de données PHP et types de variables de jugement

Note sur les fonctions PHP

Quelques fonctions PHP négligées (organisées)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal