php的callback类型小记
这篇讲的是PHP中callback类型的一种经典用法与演变。文章从开发者熟悉的`session_set_save_handler()`函数切入,这个函数正是通过callback来定制session的读写、销毁等生命周期动作。 作者首先回顾了PHP4时代的典型写法:将几个普通函数(如`sess_open`)的名称作为字符串,直接传入该函数。随着PHP5及面向对象编程的普及,callback的调用形式发生了关键变化,演变为使用数组来指定类名和方法名,例如`array('session_cls', 'open')`。这种变化让callback更清晰地指向了对象实例的某个方法,而非全局函数。 这种从“字符串函数名”到“数组类方法”的写法迁移,不仅仅是语法糖的变化。它反映了PHP从过程式向面向对象的生态迁移,也让代码的组织和复用变得更符合现代实践。文中通过作者阅读开源项目代码的观察指出,如今后者已成为主流。这为我们理解PHP早期面向对象改造如何影响底层API设计提供了一个微小但具体的观察点。