PHP编程:PHP SPL标准库中的常用函数介绍
《PHP SPL标准库中的常用函数介绍》要点: PHP SPL尺度库中提供了一些函数用来处理如自动加载、迭代器处理等.PHP实例 spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名
代码如下:
/*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)PHP实例
代码如下:
/*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注册函数来加载文件PHP实例
代码如下:
/*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 其它SPL 函数介绍: 如iterator相关函数使用:
代码如下:
$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 ; } 编程之家培训学院每天发布《PHP SPL标准库中的常用函数介绍》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |