还记得那个反射的问题吗,刚结贴,新问题就来了。

seai 2011-01-05 02:53:10
还记得那个反射的问题吗,http://topic.csdn.net/u/20110104/12/692e6a9c-8596-4ea5-a908-a8af749d2d92.html,刚结贴,新问题就来了。在php-5.3.3-2版本中测试,getParameters()确实可以获取到mysqli::connect()方法的参数信息。但我另外安装的一个redis扩展的方法还是不能正确获取到参数信息。
...全文
127 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
seai 2011-01-06
  • 打赏
  • 举报
回复
从源码入手,找到了问题的根源。

php5.3.2 mysqli

ZEND_BEGIN_ARG_INFO(second_arg_force_by_ref_rest, 1)
ZEND_ARG_PASS_INFO(0)
ZEND_END_ARG_INFO();

ZEND_BEGIN_ARG_INFO(third_arg_force_by_ref_rest, 1)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_END_ARG_INFO();

PHP_FE(mysqli_connect, NULL)

php5.3.3 mysqli

ZEND_BEGIN_ARG_INFO_EX(arginfo_mysqli_connect, 0, 0, 0)
ZEND_ARG_INFO(0, host)
ZEND_ARG_INFO(0, user)
ZEND_ARG_INFO(0, password)
ZEND_ARG_INFO(0, database)
ZEND_ARG_INFO(0, port)
ZEND_ARG_INFO(0, socket)
ZEND_END_ARG_INFO()

PHP_FE(mysqli_connect, arginfo_mysqli_connect)

redis

PHP_ME(Redis, Connect, NULL, ZEND_ACC_PUBLIC)
seai 2011-01-05
  • 打赏
  • 举报
回复
难道说这就是标准php扩展与第三方php扩展的待遇差别?

mysqli扩展都不用在php.ini里面使用extension指令就能直接用来了,
redis扩展还需要使用extension指令加载后才能使用。

这也是让人不能理解的地方。不是说所有动态扩展都应该用extension指令指明加载吗?
seai 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ihefe 的回复:]

redis扩展 能正常使用吗?
[/Quote]


100%能正常使用。而且如果我调用redis方法,提供参数不正确的话,错误信息就会反馈出来。问题是想不能总用这样的方式去获得方法的信息吧。反射出来的参数确是0个。
ihefe 2011-01-05
  • 打赏
  • 举报
回复
redis扩展 能正常使用吗?

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧