之前吐槽过PHP为什么没__compare
魔术方法《PHP __compare?》,可能开发组觉得没有必要吧,毕竟对象默认的比较一般情况已经够用了。 于是乎怀着no zuo no die心情尝试去实现一下,发现难度比预想要小。但由于拖延症的原因这篇文拖到现在才写,还有一方面就是修改的地方比较多和杂乱。
先看看效果吧!
可以看出,$o1, $o2的比较行为已经被__compare
改变
之前吐槽过PHP为什么没__compare
魔术方法《PHP __compare?》,可能开发组觉得没有必要吧,毕竟对象默认的比较一般情况已经够用了。 于是乎怀着no zuo no die心情尝试去实现一下,发现难度比预想要小。但由于拖延症的原因这篇文拖到现在才写,还有一方面就是修改的地方比较多和杂乱。
先看看效果吧!
可以看出,$o1, $o2的比较行为已经被__compare
改变
感觉比较实用的两个array函数,为了熟悉一下HashTable
的操作就写成了extension的形式
–对应index插入值得的值
array array_insert ( array $input , int $index , mixed $value )
示例:
在鸟哥《深入理解PHP原理之对象(一)》看到一段挺有意思的代码
“PHP通过这种比较ugly但是简单高效的方法, 实现了对属性访问权限的标识.知道了, 我们就可以干一些不合常理的事请, 比如访问对象的私有/保护属性”
至于这算不算BUG本文就不议论了,有兴趣的可以看看这里 (见: Bug #44273 access to private and protected class variables allowed when casting to array ): 下面有相关议论
在这里搭建起博客源于和 @AproSane的一次交谈。 之前他的博客是挂在GAE的,但是由于抠门的配额不得不迁移,找到了这个VPS。 很小巧,并且支持Go,Python什么的,最主要便宜到烂,于是我也买了。 然后想了想做Web开发也一段时间了没有一个域名不像话,接着就买了四年了这域名, 所以就有了这博客。
当然这VPS并不是单单有用搭建博客,还有用来运行一些“实验性”的东西。还是说回 博客吧。最近在看Go Web的内容并且和@AproSane担心 的一样,怕VPS哪天跪了,所以还是做静态博客吧,选用了Gor生成。我的发布流程是这样的,本地编辑编译,然后提交到github,接着VPS那边更新就好。
说到博客数一数都好几个,百度的,OSC的,SAE的(贴在about me),其实没心思写,说忙是一回事,但最主要还是自己懒吧。想导出迁移到这里,但是一直不顺利,估计就这样算了。
2014-05-09 把博客的生成器换成了jekyll
,因为一直有听说这东西,所以现在试一下,虽然一点都不懂ruby,但最近在看《代码的未来》
在看《PHP之道》时有这么一段代码
$start < $end
引起了我的注意,印象中并没有__compare
之类的魔术方法,翻了下手册确实没找到,也没相关实现,那为什么这里可以直接比较呢?因为这是built-in class,所以需要翻一下源码。(已下代码版本是 5.4.27)