内核判断php数组索引是字符串还是数字
2015-04-30 15:55
351 查看
为了能在遍历时同时接收索引的值,就像PHP语言中这样的功能:
?
为了配合zend_hash_apply_with_arguments()函数,我们需要使其接受索引作为一个参数:
?
执行遍历:
?
这个函数通过C语言中的可变参数特性来接收参数。This particular example required no arguments to be passed; for information on extracting variable argument lists from va_list args, see the POSIX documentation pages for va_start(), va_arg(), and va_end().
当我们检查这个hash_key是字符串类型还是数字类型时,是通过nKeyLength属性来检测的,而不是arKey属性。这是因为内核有时候会留在arKey属性里些脏数据,但nKeyLength属性是安全的,可以安全的使用。甚至对于空字符串索引,它也照样能处理。比如:$foo[''] ="Bar";索引的值是NULL字符,但它的长度却是包括最后这个NULL字符的,所以为1。
?
?
?
当我们检查这个hash_key是字符串类型还是数字类型时,是通过nKeyLength属性来检测的,而不是arKey属性。这是因为内核有时候会留在arKey属性里些脏数据,但nKeyLength属性是安全的,可以安全的使用。甚至对于空字符串索引,它也照样能处理。比如:$foo[''] ="Bar";索引的值是NULL字符,但它的长度却是包括最后这个NULL字符的,所以为1。
相关文章推荐
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- php判断字符串是英文还是中文
- php判断字符串是中文还是俄文 费了好大力气
- php 判断数组是一维,二维,还是多维
- 2.php 字符串,数组,正则,判断符相关
- PHP实例:判断输入的数字是奇数还是偶数
- php使用strpos判断字符串中数字类型子字符串出错的解决方法[原创]_php技巧_脚本之家
- php 如何判断一个字符串全部都是数字
- php数组转json对象并保留数字索引
- 判断字符串是数字、字符、还是...
- php 数组重新建立数字索引的函数
- PHP 重置数组为连续数字索引的方式
- 如何灵活运用PHP判断字符串的包含 PHP数组包含
- php 判断字符串是中文还是英文
- php---------正则判断字符串中是否由汉字 数字 英文字母组成
- 关于对MYSQL存储过程传递参数是纯数字还是字符串的判断
- php---------正则判断字符串中是否由汉字 数字 英文字母组成
- 字符串数组判断数字,字母汉字,
- C++循环,判断,函数,数字,数组,字符串
- 黄聪:PHP自动判断字符串是gb2312还是utf8编码