最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單談談PHP中strlen 函數

 更新時間:2016年02月27日 09:53:17   投稿:hebedich  
在PHP中,函數strlen()返回字符串的長度,strlen()函數返回字符串所占的字節(jié)長度,一個英文字母、數字、各種符號均占一個字節(jié),它們的長度均為1

strlen函數說明。

int strlen ( string $string )

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

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

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);
}

該文章講到,該函數很簡單,并不需要進一步的解釋。而這篇文章也有對zend_parse_parameters函數做介紹。筆者較笨,于是便想理解zend_parse_parameters函數是怎么返回變量長度的。

在zend_parse_arg_impl函數,就是解析參數的地方,我們繼續(xù)看case 's'的分支。這個分支是對字符串變量的解析。

int *pl = va_arg(*va, int *);是字符串長度變量的定義。

繼續(xù)往下看,可以看到對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函數是通過直接返回zval結構體中的str的len屬性來實現的。

相關文章

  • php生成4位數字驗證碼的實現代碼

    php生成4位數字驗證碼的實現代碼

    這篇文章主要介紹了php數字驗證碼的實現代碼,具有一定借鑒價值,需要的朋友可以參考下
    2015-11-11
  • 在php中實現限流ip次數以及允許部分ip訪問的代碼示例

    在php中實現限流ip次數以及允許部分ip訪問的代碼示例

    這篇文章給大家介紹了如何在php中實現限流ip次數以及允許部分ip訪問,文中通過代碼示例給大家介紹的非常詳細,對大家的學習具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • 使ecshop模板中可引用常量的實現方法

    使ecshop模板中可引用常量的實現方法

    據說ecshop的模板類是修改的smarty,不過個人感覺不是修改是完全重寫了。它和smarty上只是模板標簽上有相同的地方,同時閹割了很多功能
    2011-06-06
  • php清空(刪除)指定目錄下的文件,不刪除目錄文件夾的實現代碼

    php清空(刪除)指定目錄下的文件,不刪除目錄文件夾的實現代碼

    這篇文章主要介紹了php清空(刪除)指定目錄下的文件,不刪除目錄文件夾的實現代碼,需要的朋友可以參考下
    2014-09-09
  • 淺析PHP水印技術

    淺析PHP水印技術

    淺析PHP水印技術...
    2007-02-02
  • Laravel實現批量更新多條數據

    Laravel實現批量更新多條數據

    這篇文章主要介紹了Laravel實現批量更新多條數據,需要的朋友可以參考下
    2020-04-04
  • PHP 柱狀圖實現代碼

    PHP 柱狀圖實現代碼

    利用imagefilledrectugle的函數來畫出矩形,實現柱狀圖,具體的代碼里面都加入了詳細的注釋。
    2009-12-12
  • PHP用mysql數據庫存儲session的代碼

    PHP用mysql數據庫存儲session的代碼

    大部分使用php的人一旦應用到session都會使用cookie。 cookie雖好可是它也會給我們帶來一些隱患的。
    2010-03-03
  • PHP單元測試利器 PHPUNIT初探

    PHP單元測試利器 PHPUNIT初探

    你是否在程序開發(fā)的過程中遇到以下的情況:當你花了很長的時間開發(fā)一個應用后,你認為應該是大功告成了,可惜在調試的時候,老是不斷的發(fā)現bug,而且最可怕的是,這些bug是重復出現的,你可能發(fā)現這些bug之間會有關聯(lián),但卻老是找不到問題的所在。
    2011-03-03
  • 提高php運行速度的一些小技巧分享

    提高php運行速度的一些小技巧分享

    使用PHP的最大1個優(yōu)勢就是速度快。一般情況下,PHP總是具有足夠的速度支持Web內容動態(tài)生成,許多時候甚至無法找出比它更快的方法。然而,當面對龐大的訪問量、高負荷的應用、有限的帶寬,以及其他各種帶來性能瓶頸的因素時,就需要考慮怎樣提高PHP的性能了
    2012-07-07

最新評論

鞍山市| 珠海市| 新丰县| 富民县| 安乡县| 乌拉特后旗| 陆河县| 汶川县| 微博| 虎林市| 邵阳市| 开江县| 平凉市| 清水河县| 江孜县| 庆安县| 贵溪市| 桓台县| 民丰县| 东城区| 奇台县| 武功县| 呈贡县| 辽宁省| 化德县| 荔浦县| 安陆市| 郎溪县| 宁武县| 刚察县| 乐业县| 泉州市| 榆社县| 和田县| 襄汾县| 澄江县| 元氏县| 拉萨市| 桓台县| 申扎县| 甘肃省|