php
文章平均质量分 57
llj1985
这个作者很懒,什么都没留下…
展开
-
php命名空间的设计思想和缺点
相比C#等语言,你可以在php函数里面随意定义变量并赋值,而不用担心覆盖了全局变量,或者类变量;你也可以随意的定义类变量,而不用担心会和函数名冲突,因为变量前面都有个$。php的命名空间和全局变量、局部变量的设计思想一样,都是为了尽可能的减少命名冲突。php的命名空间可以和文件系统类似,有相对命名空间和绝对命名空间。原创 2016-04-19 12:27:10 · 2752 阅读 · 0 评论 -
php和C#的yield实现对比
yield关键字是用来方便实现迭代器的,免去了手工写迭代器的繁琐。迭代器常被用来实现协程,所以大部分的协程中都有yield关键字,可以参看unity3D的协程。C#版本:函数的返回类型必须为 IEnumerable、IEnumerable、IEnumerator 或 IEnumerator。IEnumerable表示一个类可以迭代,也就是可以用foreach遍历原创 2016-06-12 13:11:53 · 847 阅读 · 0 评论 -
php实现协程,真正的异步
github上php的协程大部分是根据这篇文章实现的:http://nikic.github.io/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html。它们最终的结果都是把回调变成了优雅的顺序执行的代码,但还是阻塞的,不是真正的异步。比如最热门的:https://github.com/recoilphp/原创 2016-06-15 18:43:49 · 18307 阅读 · 1 评论 -
万恶的BOM,万恶的微软
mac下调试php,“Namespace declaration statement has to be the very first statement in the script转念一想可能是BOM在捣鬼,还真是的。微软在技术上作的恶真不少,什么都要自己搞一套, \r\n是的,bom是的,目录分隔符\是的,根目录X:是的,更别提万恶的ie浏览器了。原创 2016-06-16 16:11:59 · 583 阅读 · 0 评论 -
php没有uint64
对于C#有:int32 min~max: -2147483648 ~ 2147483647(~21亿)uint32 min~max: 0 ~ 4294967295int64 min~max: -9223372036854775808 ~ 9223372036854775807(~92亿亿)uint64 min~max: 0 ~ 18446744073709551615flo原创 2016-06-19 15:03:03 · 4672 阅读 · 0 评论 -
pack和unpack格式化字符串(format string)解释
下表是手册上的,光看这个表还不知道如何用,我来在后面添加了解释,应该把解释中的代码都跑一遍,就全明白了。aNUL-padded string$data = pack("a4", 'abc');echo bin2hex($data) . PHP_EOL;//6162630061、62、63、00都是十六进制的,分别代表一个字节a后面要跟一个数字原创 2016-06-17 12:40:17 · 7917 阅读 · 1 评论