- 作者: Laruence( )
- 本文地址: http://www.laruence.com/2011/10/10/2229.html
- 转载请注明出处
在PHP5.4的开发过程中, 有不少对typehint的提议, 我们也讨论过很多次, 完全加入对基本类型的typehint会引起很大的变动, 并且就我自己来看, 不利于PHP的灵活性.
不过, 对于callable类型的支持, 我还是支持的.
在以前, 我们如果希望一个函数接受一个回调函数作为参数, 那需要做很多额外的工作来检查是否是可调用的, 正确的回调函数.
而现在, 这个将会变得很简单, Zend Engine提供了一个新的typehint, 来帮助你完成这些检查工作:
<?php function foo(callable $callback) { }
对于下面的例子:
<?php foo("false"); //Catchable fatal error: Argument 1 passed to foo() must be callable * foo("printf"); //okey foo(function(){}); //okey class A { static function show() { } } foo(array("A", "show")); //okey
是不是方便了很多呢?
另外, 对于扩展开发来说, zend_parse_parameters也提供了对应的新标志:”f”, 可以参看Zend Parameters Parser新增类型描述符介绍
不过还是要提醒下, PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.
更多更新信息, 请关注: Changelog
Comments
- 2011/10/10, vt writes: 如果能直接用foo(“A->show”); //okey
就更好了 🙂
- 2011/10/10, istrone writes: 和js挺像了!
- 2011/11/17, xiatian writes: 喜欢各种回调风格
- 2011/11/17, xiatian writes: 喜欢各种回调风格
Copyright © 2010 风雪之隅 版权所有, 转载务必注明. 该Feed只供个人使用, 禁止未注明的转载或商业应用. 非法应用的, 一切法律后果自负. 如有问题, 可发E-mail至my at laruence.com.(Digital Fingerprint: 73540ba0a1738d7d07d4b6038d5615e2)
Related Posts:
转载请注明:爱开源 » 函数类型提示(Callable typehint)