简介:这是PHP连贯接口的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=332955' scrolling='no'> 近期,看到很多人都在讨论连贯接口这个东西,仔细想想,这其实没有什么,用的早的如javascript中的jQuery,都早就在用了。只是PHP最近被人翻出来炒一炒而已。但不得不说的是,连贯接口也有它自身的好处,即可以让代码更清晰化,比如Zend的Select类里面,生成一个SQL并执行就是那样的直观:
$db = new Zend_Db(); //这是随便写的,主要是为了显示一下 $db->select() ->from('tablename') ->where('id = ?' , $id) ->orwhere('name != ?' , $name); //最后也可以调用一下来生成这个SQL $sql = $db->__toString();
自从到了PHP5,$a = new Object() ; $b = $a; 这个$b 直接变成了取址,而不是COPY后,这样的连贯接口比之用数组来实现效率是高上了很多,毕竟相对占用内存会少一点吧?(估计,没有实测过)。
不过,这东西确实也就和AJAX一样,属于老瓶装新酒。以前类里的函数是返回一个值,或者true等等等等,现在是return $this;直接返回自身(不知道这样效率是提升还是下降。),但总体来说,这个还是一个很不错的方法。
连贯接口很简单,写起来也很美,但是却遇到一个棘手的问题,类似ZendStudio,Eclipse之类的IDE似乎并不支持连贯接口的自动提示?其实结局的方法也很简单,只要像上面的代码注释那样,遵循PHPDoc的代码注释规范,在@return后注明返回的对象类型,这些IDE也同样能实现自动提示。