函数类型提示(Callable typehint)
2011-10-10 00:00
1306 查看
在PHP5.4的开发过程中, 有不少对typehint的提议, 我们也讨论过很多次, 完全加入对基本类型的typehint会引起很大的变动, 并且就我自己来看, 不利于PHP的灵活性.
不过, 对于callable类型的支持, 我还是支持的.
在以前, 我们如果希望一个函数接受一个回调函数作为参数, 那需要做很多额外的工作来检查是否是可调用的, 正确的回调函数.
而现在, 这个将会变得很简单, Zend Engine提供了一个新的typehint, 来帮助你完成这些检查工作:
另外, 对于扩展开发来说, zend_parse_parameters也提供了对应的新标志:”f”, 可以参看Zend Parameters Parser新增类型描述符介绍
不过还是要提醒下, PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.
更多更新信息, 请关注: Changelog
Zend Engine幻想
GBK编码PHP脚本导致语法错误(Zend Multibyte)
深入理解PHP原理之Opcodes
寻找函数定义在哪个模块
不过, 对于callable类型的支持, 我还是支持的.
在以前, 我们如果希望一个函数接受一个回调函数作为参数, 那需要做很多额外的工作来检查是否是可调用的, 正确的回调函数.
而现在, 这个将会变得很简单, Zend Engine提供了一个新的typehint, 来帮助你完成这些检查工作:
<?php function foo(callable $callback) { }对于下面的例子:
<?phpfoo("false"); //Catchable fatal error: Argument 1 passed to foo() must be callable *foo("printf"); //okeyfoo(function(){}); //okeyclass A { static function show() { }}foo(array("A", "show")); //okey是不是方便了很多呢?
另外, 对于扩展开发来说, zend_parse_parameters也提供了对应的新标志:”f”, 可以参看Zend Parameters Parser新增类型描述符介绍
不过还是要提醒下, PHP 5.4还处于开发阶段, 在最终release之前, 任何新特性都可能被调整或者更改. 如果大家有任何建议, 也欢迎反馈, 帮助我们使得PHP变得更好.
更多更新信息, 请关注: Changelog
Related Posts
Zend Parameters Parser新增类型描述符介绍Zend Engine幻想
GBK编码PHP脚本导致语法错误(Zend Multibyte)
深入理解PHP原理之Opcodes
寻找函数定义在哪个模块
相关文章推荐
- 函数类型提示(Callable typehint)
- python TypeHint, 类型提示
- Python 3.5 终于将 Type Hint(类型提示)官方化
- Python 3.5 终于将 Type Hint(类型提示)官方化
- PHP - Manual手册 - Function Reference函数参考 - Variable and Type Related Extensions变量和类型相关扩展 - Arrays数组 - Array Functions数组函数 - ksort
- 关于安卓开发提示:This text field does not specify an inputType or a hint
- 错误提示:Uncaught TypeError: xxxxx(此处为要调用的函数) is not a function
- Eclipse中使用printf报错 提示参数类型不对 已解决The method printf(String, Object[]) in the type PrintStream is not ap
- Swift 函数也有类型type
- 创建数据库的时候报错,错误提示为“datatype notmach”,说明数据类型不匹配
- C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)
- PHP Type Hinting (类型提示)
- Integer(String等函数类型) cannot be resolved to a type 错误解决方法
- C# 读取app.config配置文件 节点键值,提示 "System.TypeInitializationException 类型初始值设定项引发异常" 错误的解决方案
- VS2010中提示无法打开源文件 stdafx.h,.CPP文件中很多类型函数未定义,但是编译通过
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- linux xfs文件系统无法用readdir获取dirent文件类型d_type则用stat获取暨stat函数讲解
- MySQL改变数据类型的函数CAST(x AS type)和CONVERT(x,type)
- QT connect ConnectionType 函数连接类型
- 函数重写(override)与协变返回类型(covariant return type)