strlen函數(shù)說明。
int strlen ( string $string )
在這篇文章,我們可以知道strlen函數(shù)是通過Zend Engine定義的。函數(shù)的定義可以在這里查看。
在這里也給出函數(shù)的源碼:
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); }
該文章講到,該函數(shù)很簡單,并不需要進(jìn)一步的解釋。而這篇文章也有對(duì)zend_parse_parameters函數(shù)做介紹。筆者較笨,于是便想理解zend_parse_parameters函數(shù)是怎么返回變量長度的。
在zend_parse_arg_impl函數(shù),就是解析參數(shù)的地方,我們繼續(xù)看case 's'的分支。這個(gè)分支是對(duì)字符串變量的解析。
int *pl = va_arg(*va, int *);是字符串長度變量的定義。
繼續(xù)往下看,可以看到對(duì)pl變量的賦值語句:*pl = Z_STRLEN_PP(arg);。
而Z_STRLEN_PP宏的定義在zend_operators.h文件中:
#define Z_STRLEN_PP(zval_pp)??? Z_STRLEN(**zval_pp)
再繼續(xù)看Z_STRLEN宏的定義,#define Z_STRLEN(zval)????????? (zval).value.str.len。由此我們可以知道,strlen函數(shù)是通過直接返回zval結(jié)構(gòu)體中的str的len屬性來實(shí)現(xiàn)的。
更多簡單談?wù)凱HP中strlen 函數(shù)相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

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

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)