if(strlen($name) ==5|| strlen($name) ==6) 请问上面的代码 PHP的函数运行了几次? 两次吗?$name = strlen($name) ; 要不要新建一个变量?
可能strlen比较简单,如果是复杂的正则匹配呢

解决方案 »

  1.   

    是的,strlen 被执行了 2 次
    如果先保存到变量 $length = strlen($name) ; 
    的确会减少一次 strlen 的执行,但也要多用 80 个字节的内存这种用空间换时间的做法,并不总是有效的。需要根据实际情况找到平衡点
      

  2.   

    如果strlen($name) ==5  已经计算出为真了,那么||后面的就会忽略,直接返回真给if判断   也就是两次
    如果strlen($name) ==5算出来为为假,那么还要判断后面的strlen($name) ==6,最后返回到If判断,也就是三次