PHP程序员经常忽略的一些非常有用功能,你中枪了吗?
我们知道PHP封装做得非常好,容易使用,比如上传文件,如果要你用Java或者C语言来实现一个文件,估计够你呛的了,但是PHP中还有一些非常有用的功能却经常被忽略。
Streams
相信很多PHP程序员接触Streams的时候,都是百度,然后看到很多文章都在描述,Streams这个是PHP的核心、然后搬着文档里面的知识弄一遍,最后大部分PHP程序员看了,估计都不知道在说什么,也没有看出为什么是核心,其实Streams是一个对各种数据处理的操作封装,这些数据来源可以是本地文件、压缩文件、网络数据等等,比如我们我们经常使用的fopen函数来打开远程文件,如果需要传递一些请求头过去,就可以借助Streams来完成,下面是一个例子。
PDO::prepare
我们知道MySQL的预处理语句具有很多很多的优点,一方面可以一定程度上防止SQL注入,另一方面能够减少SQL语句的执行时间,而PDO是我们PHP程序员经常使用的数据库连接方式,在PDO里面提供prepare来完成预处理语句的功能,但是我们发现,很多PHP程序员都很少使用这个功能,至于原因,或许一方面是对MySQL的预处理语句功能不了解,只会简单的增删改查语句,另一方面或许是还没有安全和性能优化的意识,我们既可以在MySQL服务端完成预处理语句也可以在PDO端完成。
SPL
SPL即标准PHP库,该库是一个为了解决公共问题的类和方法集合,在PHP5中就引入了这个库,它提供了一系列的标准数据库、接口、标准异常等等,用这个库,我们能够使用双链表来实现一个队列的主要功能,比如增加、置顶、追加、获取下一个等,还可以实现关于双链表、堆和栈的功能等等,同时还能够用ArrayIterator来完成对数组和对象的操作,如获取数组元素对象属性的个数,判断某个属性是否存在,或者某个属性等等,总而言之,它和Streams一样,都是一个超级高度的封装。
经过上面的介绍,想必你已经明白了一些东西,比如之前我们要完成一个双链表的功能,要百度或者谷歌啊什么的,其实PHP已经帮我们完成了,用SPL扩展很容易就可以搞定,而且还完成了双链表的大部分功能,可见还是那句话,很多知识,我们都可以从官方文档获得。