Cet article présente principalement les fonctions courantes de la bibliothèque standard PHP SPL. Cet article se concentre sur les trois fonctions spl_autoload_extensions(), spl_autoload_register() et spl_autoload(). Les amis dans le besoin peuvent s'y référer
. La bibliothèque standard PHP SPL fournit certaines fonctions de traitement telles que le chargement automatique, le traitement des itérateurs, etc.
spl_autoload_extensions() ajoute des extensions de fichiers qui peuvent être chargées par spl_autoload()
spl_autoload_register() enregistre la fonction dans la pile de fonctions SPL __autoload.
Le code est le suivant :
/*test1.php*/ <?php class Test1 { } /*test2.lib.php*/ <?php class Test2 { } /*test.php*/ <?php //设置可加载类的文件扩展名 spl_autoload_extensions(".php,.inc.php,.class.php,.lib.php"); //设置include_path,autoload会在这些path中去寻找类文件,可通过PATH_SEPARATOR添加多个path set_include_path(get_include_path().PATH_SEPARATOR.'libs/'); //不提供参数,默认实现函数是spl_autoload() spl_autoload_register(); $test1 = new Test1(); $test2 = new Test2(); spl_autoload()它是__autoload()的默认实现,它会去include_path中加载文件(.php/.inc)
Le code est le suivant :
/*test1.php*/ <?php class Test1 { } /*test.php*/ <?php set_include_path(get_include_path().PATH_SEPARATOR.'libs/'); spl_autoload('test1'); $test1 = new Test1(); spl_autoload_call()调用所有spl_autoload_register注册函数来加载文件
Le code est le suivant :
/*test1.php*/ <?php class Test { public function getFilename() { echo 'test1.php'; } } /*test2.lib.php*/ <?php class Test { public function getFilename() { echo 'test2.lib.php'; } } /*test.php*/ <?php function loader($classname) { if($classname == 'Test1') { require __DIR__ . '/test1.php'; } if($classname == 'Test2') { require __DIR__ . '/test2.lib.php'; } } spl_autoload_register('loader'); spl_autoload_call('Test2'); $test = new Test(); $test->getFilename(); //test2.lib.php
Introduction aux autres fonctions SPL :
class_implements — Renvoie toutes les interfaces implémentées par la classe spécifiée.
class_parents — Renvoie la classe parent de la classe spécifiée.
class_uses — Renvoie les traits utilisés par la classe donnée
iterator_apply — Appele une fonction définie par l'utilisateur pour chaque élément de l'itérateur
iterator_count — Compte le nombre d'éléments dans l'itérateur
iterator_to_array — Copie le éléments de l'itérateur dans le tableau
spl_autoload_functions — Renvoie toutes les fonctions __autoload() enregistrées
spl_autoload_unregister — Annule l'enregistrement des fonctions __autoload() enregistrées
spl_classes — Renvoie toutes les classes SPL disponibles
spl_object_hash — Renvoie l'identifiant de hachage de l'objet spécifié
Par exemple, si des fonctions liées à l'itérateur sont utilisées :
Le code est le suivant :
$iterator = new ArrayIterator (array( 'recipe' => 'pancakes' , 'egg' , 'milk' , 'flour' )); print_r(iterator_to_array($iterator)); //将迭代器元素转化为数组 echo iterator_count($iterator); //计算迭代器元素的个数 print_r(iterator_apply($iterator, 'print_item', array($iterator)));//为迭代器每个元素调用自定义函数 function print_item(Iterator $iterator) { echo strtoupper ( $iterator -> current ()) . "\n" ; return TRUE ; }
Résumé : Le ci-dessus est ceci. Nous espérons que l’ensemble du contenu de cet article sera utile à l’étude de chacun.
Recommandations associées :
Comment PHP exploite la base de données pour déterminer si une table existe
Comment faire fonctionner la base de données MySQL et le dialogue de session avec php
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!