zoukankan      html  css  js  c++  java
  • PHP的count(数组)和strlen(字符串)的内部实现


    PHP的count(数组)和strlen(字符串)的内部实现上是直接显示一个长度变量,还是重头依次数一遍有多少个元素?

    关乎我理解这2个函数的效率。。
    希望高人能从php的c源码上讲一讲。没有源码看过源码知道的说说也行。
    1、count执行时背后有没有“逐个统计”子元素的个数?
    2、strlen执行时背后有没有“逐个统计”字符的个数?
    ==========
    我已经找到PHP strlen的源码了,唉沉下去的没几人。。。
    正在找count的
    =================
    结论
    strlen直接返回长度变量,没有计算。效率O(1)
    count逐个数元素,发生大量计算。效率O(N)


    ----------------------------------------------
    count是针对数组的,返回的是数组的长度,在实现上,数组就是一张hash表,count的时候就是统计这张表的元素个数
    strlen是针对字符串的,返回的是字符串的长度,也就是字符串中的字符的个数,在实现上,没看过不清楚。
    在使用上,strlen是不能用来统计数组的个数的,
    虽然count可以传入字符串作为参数,但是它返回的是相当于count((array)字符串) 也就是 1 的效果。 和strlen返回的意义就不一样了
    追问
    先读懂我的问题吧,我没有问PHP层面的功能,功能在手册上都写着。问的是
    1、count执行时背后有没有逐个统计“子元素”的个数?
    2、strlen执行时背后有没有逐个统计“字符”的个数?
    题意是把这2句合在一起问的。


    注:
    sizeof() 函数计算数组中的单元数目或对象中的属性个数。
    该函数是 count() 的别名。

    百度知道上看到的
    来源:
    http://zhidao.baidu.com/link?url=uTqPQf48jCkbyHA_cJMcfLSiw5GQd7i6KOWqEEnwVoTWe3YlMqYWc2KLF_3cvaKCl7XmNgw2XmKhql6fJZ0zc_


  • 相关阅读:
    (转 )Unity对Lua的编辑器拓展
    unity timeline
    unity拖尾粒子问题
    unity shader 波动圈
    linux教程
    Unity Shader 基础
    ugui拖拽
    unity shader 热扭曲 (屏幕后处理)
    英文取名神器
    lua正则表达式替换字符串
  • 原文地址:https://www.cnblogs.com/jacson/p/4216743.html
Copyright © 2011-2022 走看看