strlen函数说明。

Int strlen(字符串的字符串)



在这篇文章中,我们可以知道,strlen函数是由Zend引擎定义。一个函数的定义可以看这里。

这里还给出了函数的源代码:


zend_function(strlen)
{
char;
国际s1_len;

如果(zend_parse_parameters(zend_num_args)(tsrmls_cc,S1,S,s1_len)= =失败){
返回;
}

retval_long(s1_len);
}




功能简单,不需要进一步的解释,并介绍了该zend_parse_parameters功能。笔者更是愚蠢的,所以我想了解zend_parse_parameters函数返回变量的长度。

在zend_parse_arg_impl函数,其中参数的解析,我们继续看下的分支,这个分支是解析字符串变量。

int * PL = va_arg(* VA,int *);是一个字符串长度的变量定义。

向下看,你可以看到PL变量的赋值语句:* PL = z_strlen_pp(Arg);。

对z_strlen_pp宏的定义是在zend_operators H文件:

#定义z_strlen_pp(zval_pp)z_strlen(** zval_pp)



然后继续看的z_strlen宏的定义,#定义z_strlen(机制)(机制)。Value.str.len.Thus,我们可以看到,strlen函数是直接返回str len属性在zval结构实现。