麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

簡單談談PHP中strlen 函數

2024-09-04 11:49:35
字體:
來源:轉載
供稿:網友

strlen函數說明。

int strlen ( string $string )

在這篇文章,我們可以知道strlen函數是通過Zend Engine定義的。函數的定義可以在這里查看。

在這里也給出函數的源碼:

  1. ZEND_FUNCTION(strlen
  2.  
  3.  
  4.   char *s1; 
  5.  
  6.   int s1_len; 
  7.  
  8.   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &s1, &s1_len) == FAILURE) { 
  9.  
  10.     return
  11.  
  12.   } 
  13.  
  14.   RETVAL_LONG(s1_len); 
  15.  

該文章講到,該函數很簡單,并不需要進一步的解釋。而這篇文章也有對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屬性來實現的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娇喘视频在线观看 | 激情小说另类 | 91亚洲免费视频 | 欧美在线小视频 | 国产精品久久久久av | www.狠狠插.com | 91看片在线观看视频 | 亚洲视频综合 | a级在线| 亚洲成人精品区 | 国产精品高潮视频 | 黄色毛片前黄 | 孕妇体内谢精满日本电影 | 久成人| 精品久久一区二区三区 | 日本一级黄色大片 | 免费男女乱淫真视频 | 一级国产免费 | 精品国产一二区 | 综合网日日天干夜夜久久 | 美女黄视频在线观看 | 久久久久久中文字幕 | 偿还电影免费看 | 欧美性受ⅹ╳╳╳黑人a性爽 | 欧美国产精品久久 | 一级做a爱视频 | 男女无套免费视频 | 日韩毛片一区二区三区 | 欧美乱码精品一区 | www.99re1.com| 91短视频在线 | 欧美成年性h版影视中文字幕 | 国产乱弄 | 欧美大胆xxxx肉体摄影 | 国产1区2区在线 | 国产女厕一区二区三区在线视 | 国产亚洲精品久久久久久大师 | 天堂二区| 成人黄色网战 | 久久成人免费网 | 九色中文|