技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP 模块编写需要注意的一个问题---- php模块及函数名都定义成小写吧

PHP 模块编写需要注意的一个问题---- php模块及函数名都定义成小写吧

浏览:3422次  出处信息
   这是一个困扰我很长时间的问题,曾经由于没有思路,一直搁置没有去追究,现在要对该模块做一些修改,就想顺便把这个问题给查明白了,事情是这样的...

    我们写了一个PHP模块String2Hash,其实里面只有一个函数叫: String2Hash() ,只是要将一个字符串hash成一个整数,由于PHP中的整型都是有符号的,该算法涉及移位,求和,求模,等操作,用PHP实现比较麻烦,就用C写了一个PHP的模块。

    编译完之后,执行:

    php --re String2Hash

    就报错如下:

    PHP Warning:  Internal error: Cannot find extension function String2Hash in global function table in Unknown on line 0

    虽然有警告,但是该模块时可以正常加载和使用的; 一般来讲,程序员只关心error,不关心Warning的,但是我就想知道个究竟。

    第一步: 先做一个helloworld模块,这个完全是生成的,只有很少的修改,结果是没有报错的。

    第二步: 将自己的函数添加进去,开始报错。

    第三步: 将自己的函数重命名为myhash, 编译不再报错。问题基本出现在函数名上了。可能是大小写的问题吧?突然想到报错提示,可能是global function table这个数组的key是区分大小写的?

    第四步: 将String2Hash 重命名为string2hash, 为了保险,将所有出现的地方都改成小写吧,反正PHP函数是不区分大小写的,改成小写也无妨。 编译不再报错,测试通过,问题解决

    have fun!!!

建议继续学习:

  1. 在Apache2.2.XX下安装Mod-myvhost模块    (阅读:11818)
  2. Nginx模块开发入门    (阅读:9997)
  3. nginx模块开发    (阅读:4708)
  4. windows批量重命名文件名,自动修改大小写    (阅读:4344)
  5. CommonJS 的模块系统,AMD 和 Wrappings, 以及 RequireJS    (阅读:4235)
  6. 搭好了apache模块的开发环境    (阅读:3552)
  7. 使用 Perl 来开发 Nginx 的模块    (阅读:3354)
  8. FarmVille(美版开心农场)谈架构:所有模块都是一个可降级的服务    (阅读:3336)
  9. mysql数据库表名的大小写问题    (阅读:3127)
  10. php无法加载pcre.so的解决办法    (阅读:3071)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1