博客广场

我对PHP5.4的一个改进
插播个消息, 今天, 我终于获得了Zend的维护权限, Zend是PHP源代码中最为核心的部分, 也是最为敏感的地方, 对于这部分的权限控制的一直很严格. 但也是我加入PHP开发组以...
PHP正则之递归匹配
我记得早前有同事问, 正则是否能处理括号配对的正则匹配. 比如, 对于如下的待匹配的字符串: ((())) 就是一个括号配对的字符串. 而对于如下的待匹配字符串: ((() 则不是...
和一朋友对话有感
朋友: 你知道你的 nginx+php pathinfo的问题的那文章, 我看了多少遍吗? 我: ..... 看了多少遍... 朋友: 从去年这个问题出现,到我写那个运维开发安全的PPT,我看了不少...
mysqlnd插件mysqlnd_ms的介绍
从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了. mysqlnd的主要目的是为了解决长久以来mysql和php的licen...
JsonSerializable接口
昨天funlake提醒了我, 应该把一些PHP的新动向传播一下. 恭喜候鸟加入了pdt,有什么新进展别忘了给咱cn phper通报一下呀。 那么, 今天为大家介绍一下5.4中对Json做的一个...
Array dereferencing
首先, 这个标题我不太清楚怎么翻译才能表达确切的意思, 直译不太妥当. 在PHP5.4中, 有一个新的改进: Added array dereferencing support. (Felipe) 在以前, 我们如果定...
上传进度支持(Upload progress in sessions)
文件上传进度反馈, 这个需求在当前是越来越普遍, 比如大附件邮件. 在PHP5.4以前, 我们可以通过APC提供的功能来实现. 或者使用PECL扩展uploadprogress来实现. 虽然说, 它...
函数类型提示(Callable typehint)
在PHP5.4的开发过程中, 有不少对typehint的提议, 我们也讨论过很多次, 完全加入对基本类型的typehint会引起很大的变动, 并且就我自己来看, 不利于PHP的灵活性. 不过, 对...
二进制直接量(binary number format)
从PHP5.4开始, 我们可以直接在代码中书写二进制直接量了. 这个在定义一些标志位的时候, 尤为方便. 看下面的例子: $bin = 0b1101; echo $bin; //13 而在以前, 我们需要使...
让Json更懂中文(JSON_UNESCAPED_UNICODE)
我们知道, 用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似"\u***"的格式, 还会在一定程度上增加传输的数据量. <?php echo json_encode("中文...
Zend Signal in PHP 5.4
在PHP5.4中, 根据由Rasmus提交的RFC, 引入了一套新的信号处理机制, 目的是为了使得信号屏蔽机制可以应用到任何SAPI中, 并且提高在这个过程中的PHP性能. 新的机制, 叫做z...
三元式(ternary)性能优化
PHP 5.4 由Arnaud 引入了一个对三元式的优化方案. 我们都知道PHP用写时复制来对变量复制做性能优化, 而在以前的三元式中, 却每次都会复制, 这在操作数是大数组的情况下,...
Yaf的性能对比测试
从Yaf诞生以来, 我就没把它与其他框架的性能对比测试放出来, 原因呢, 也很简单, 我懒, 没对比过(只是和原生的PHP做了简单的对比). 最近, 关注Yaf的人越来越多, 今天从访...
PHP原理之内存管理中难懂的几个点
PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zen...
PHP5.4新特性-解引用实例化
在以前的PHP中, 我们并不能直接去操作一个对象实例化的结果: <?php (new Foo())->show(); //PHP Parse error: syntax error, unexpected T_OBJECT_OPERATOR 我们只能, ...
GBK编码PHP脚本导致语法错误(Zend Multibyte)
微薄上有同学问我: GBK环境下如下php代码:<?php echo("洪仁玕");?> 会引发php的语法错误,如何解决? 这个是因为, 在GBK环境下, "玕"的编码是"0xab 0x5c, 所以, 又是一...
Yaf 2.1性能测试(Yaf 2.1 Benchmark)
Thanks to Ruilog agian for his work of second benchmark of Yaf 2.1. Yaf 2.1 (github, manual) did a lot of work to improve performance and reduce memory usage...
更简单的重现PHP Core的调用栈
以前, 我曾经介绍过如何通过PHP的Core文件获取信息:如何调试PHP的Core之获取基本信息, 对于调用参数这块, 当时介绍的获取方法比较复杂. 于是今天我为PHP 5.4的.gdbinit...
关于PHP浮点数你应该知道的(All 'bogus' about the float in PHP)
PHP是一种弱类型语言, 这样的特性, 必然要求有无缝透明的隐式类型转换, PHP内部使用zval来保存任意类型的数值, zval的结构如下(5.2为例): struct _zval_struct { / Vari...
之前提到的PHP5.4一个注意点的update
在之前, 我曾经介绍过, 在PHP5.4中, PHP5.4中一个需要注意的变化(Chained string offsets), 后续因为大多数人都表示这个变化很敏感, 容易成为坑.. 于是, 我们现在对此做...