国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 PHP開發(fā) 簡單談?wù)凱HP中strlen 函數(shù)

簡單談?wù)凱HP中strlen 函數(shù)

Dec 27, 2016 pm 02:49 PM

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)!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

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

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276