strlen函数说明。
int strlen ( string $string )
在这篇文章,我们可以知道strlen函数是通过Zend Engine定义的。函数的定义可以在这里查看。
在这里也给出函数的源码:
ZEND_FUNCTION(strlen) { char *s1; int s1_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &s1, &s1_len) == FAILURE) { return; } RETVAL_LONG(s1_len); }
该文章讲到,该函数很简单,并不需要进一步的解释。而这篇文章也有对zend_parse_parameters函数做介绍。笔者较笨,于是便想理解zend_parse_parameters函数是怎么返回变量长度的。
在zend_parse_arg_impl函数,就是解析参数的地方,我们继续看case 's'的分支。这个分支是对字符串变量的解析。
int *pl = va_arg(*va, int *);是字符串长度变量的定义。
继续往下看,可以看到对pl变量的赋值语句:*pl = Z_STRLEN_PP(arg);。
而Z_STRLEN_PP宏的定义在zend_operators.h文件中:
#define Z_STRLEN_PP(zval_pp) Z_STRLEN(**zval_pp)
再继续看Z_STRLEN宏的定义,#define Z_STRLEN(zval) (zval).value.str.len。由此我们可以知道,strlen函数是通过直接返回zval结构体中的str的len属性来实现的。
更多简单谈谈PHP中strlen 函数相关文章请关注PHP中文网!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)