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ù)是怎麼回傳變數(shù)長度的。
在zend_parse_arg_impl函數(shù),就是解析參數(shù)的地方,我們繼續(xù)看case 's'的分支。這個(gè)分支是對(duì)字串變數(shù)的解析。
int *pl = va_arg(*va, int *);是字串長度變數(shù)的定義。
繼續(xù)往下看,可以看到對(duì)pl變數(shù)的賦值語句:*pl = Z_STRLEN_PP(arg);。
而Z_STRLEN_PP巨集的定義在zend_operators.h檔案中:
#define Z_STRLEN_PP(zval_pp)??? Z_STRLEN(**zval_pp)
??? (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脫衣器

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)
