好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php过滤组件 php数组过滤

很多站长朋友们都不太清楚php过滤组件,今天小编就来给大家整理php过滤组件,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP的SPL标准库的用法介绍 2、 新手学习thinkphp6还是thinkphp5比较好? 3、 php 程序不用框架可以吗? zend framework 有什么优点? PHP的SPL标准库的用法介绍

本文介绍下,php编程中SPL中的用法,SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,有需要的朋友参考下。

PHP SPL的用法

SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟。SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置。

似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻。究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」。SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海底。而现在它应该被我们捞起,并将它穿戴在应有的位置 ,而这也是这篇文章所要表述的观点。

SPL 提供了什么?

SPL 对 PHP 引擎进行了扩展,例如 ArrayAccess、Countable 和 SeekableIterator 等接口,它们用于以数组形式操作对象。同时,你还可以使用 RecursiveIterator、ArrayObejcts 等其他迭代器进行数据的迭代操作。

它还内置几个的对象例如 Exceptions、SplObserver、Spltorage 以及 splautoloadregister、splclasses、iteratorapply 等的帮助函数(helper functions),用于重载对应的功能。

这些工具聚合在一起就好比是把多功能的瑞士军刀,善用它们可以从质上提升 PHP 的代码效率。那么,如何发挥它的威力?

重载 autoloader

如果你是位「教科书式的程序员」,那么你保证了解如何使用 __autoload 去代替 includes/requires 操作惰性载入对应的类,对不?

但久之,你会发现你已经陷入了困境,首先是你要保证你的类文件必须在指定的文件路径中,例如在 Zend 框架中你必须使用「_」来分割类、方法名称(你如何解决这一问题?)。

另外的问题:

当项目变得越来越复杂, __autoload 内的逻辑也会变得相应的`复杂。到最后,甚至你会加入异常判断,以及将所有的载入类的逻辑如数写到其中。

大家都知道「鸡蛋不能放到一个篮子中」,利用 SPL 可以分离 __autoload 的载入逻辑。只需要写个你自己的 autoload 函数,然后利用 SPL 提供的函数重载它。

例如,上述 Zend 框架的问题,你可以重载 Zend loader 对应的方法,如果它没有找到对应的类,那么就使用先前定义的函数。

复制代码 代码示例:

<?php

class MyLoader {

public static function doAutoload($class) {

// 本模块对应的 autoload 操作

}

}

spl_autoload_register( array('MyLoader', 'doAutoload') );

?>

spl autoload register 还能以数组的形式加入多个载入逻辑。同时,你还可以利用spl autoload unregister 移除已经不再需要的载入逻辑,这功能总会用到的。

迭代器

迭代是常见设计模式之一,普遍应用于一组数据中的统一的遍历操作。可以毫不夸张的说,SPL 提供了所有你需要的对应数据类型的迭代器。

有个非常好的案例就是遍历目录。常规的做法就是使用 scandir ,然后跳过「.「 和 「..」,以及其它未满足条件的文件。例如你需要遍历个某个目录抽取其中的图片文件,就需要判断是否是 jpg、gif 结尾。

使用 SPL 的迭代器执行上述递归寻找指定目录中的图片文件的例子:

复制代码 代码示例:

<?php

class RecursiveFileFilterIterator extends FilterIterator {

// 满足条件的扩展名

protected $ext = array('jpg','gif');

/**

* 提供 $path 并生成对应的目录迭代器

*/

public function __construct($path) {

parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));

}

/**

* 检查文件扩展名是否满足条件

* //

*/

public function accept() {

$item = $this->getInnerIterator();

if ($item->isFile()

in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {

return TRUE;

}

}

}

// 实例化

foreach (new RecursiveFileFilterIterator('/path/to/something') as $item) {

echo $item . PHP_EOL;

}

?>

新手学习thinkphp6还是thinkphp5比较好?

thinkphp5好

ThinkPHP5是一个全新的里程碑版本,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发),而且最好是忘记3.2版本的思维习惯,重新理解TP5。

php 程序不用框架可以吗? zend framework 有什么优点?

当然可以,不过zend framework笨重的就像台坦克,已经完全没有了PHP的轻颖秀气。所谓的MVC和面向对象还有安全性方面做的好吧,毕竟是一个大型的框架。不做重型的项目还是用不到ZF,上手也比较困难。平常开发SMARTY+面向对象足够了,毕竟PHP大部分时间还在做WEB应用。

关于php过滤组件的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php过滤组件 php数组过滤的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did209973
更新时间:2023-05-03   阅读:11次

上一篇: 社区程序php 社区程序员

下一篇:php常用的标量类型 php的标量数据类型有哪些

最新资料更新

  • 1.token验证php Token验证失败异地登陆什么意思
  • 2.php从事哪个方面 php干啥的
  • 3.php函数补全 php自动补全
  • 4.php后端需要css吗 php后端教程
  • 5.php获取post值 php如何获取url参数
  • 6.php如何接收对象 php怎么接收json数据
  • 7.php中if应用 php中if语句
  • 8.php求100的质数 php求出1100的素数
  • 9.php获取阴历 php获取日期
  • 10.imagephp缩放 缩放图像可以改变图像的分辨率吗
  • 11.php半角全角 全角半角字符切换
  • 12.php新浪微博开发 微博开发工具
  • 13.仿win桌面php源码 仿windows桌面
  • 14.包含Zend转php的词条
  • 15.PHP版本在哪调 phpversion
  • 16.php圆形头像代码 php生成圆形图
  • 17.最新php环境搭建 最新php环境搭建方案
  • 18.php5.2.8安装 php安装教程
  • 19.php菱形的输出 php输出菱形星号
  • 20.php协议input php协议,json

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]