Make code sweet.PHP特殊用法的一些总结(1)
最近一个项目接近尾声了,工作慢慢轻松了下来,闲暇时就看看一些PHP的框架和一些优秀的开源软件中的代码,一来可以借鉴一下其中的常用代码和函数,二来通过阅读别人的代码了解一些平时不太常见的函数以及特殊用法。这些代码都是针对PHP 5编码的,这样才能充分学习最新的特性。下面是我这段时间阅读代码的特殊用法的一些总结。
首先我们来说说PHP中的语法糖,在复杂的PHP应用中,一般都趋向于使用MVC框架,或者通用的,或者自己造新的,为了美观易用都少不了撒上一点语法糖。以下内容会有用。
1.魔法方法,让对象更丰富一点
PHP5新增了几个魔法方法,其中一些方法可以让对象执行其不存在的方法和获取不存在的属性。这个特性应该是最家喻户晓的高级用法,如果你不知道,可以查看PHP Manual里Overloading这一节。
__call and __callStatic
在执行对象的不存在的方法时触发,原型如下:
mixed __call ( string $name , array $arguments )mixed __callStatic ( string $name , array $arguments )
void __set ( string $name , mixed $value )mixed __get ( string $name )bool __isset ( string $name )void __unset ( string $name )
ArrayAccess {/* Methods */abstract public boolean offsetExists ( string $offset )abstract public mixed offsetGet ( string $offset )abstract public void offsetSet ( string $offset , string $value )abstract public void offsetUnset ( string $offset )}
Iterator extends Traversable {/* Methods */abstract public mixed current ( void )abstract public scalar key ( void )abstract public void next ( void )abstract public void rewind ( void )abstract public boolean valid ( void )}
Countable {/* Methods */abstract public int count ( void )}