你知道 break 的含义吗?

解决方案 »

  1.   

    跳出所在的for循环,执行下一次外面循环
      

  2.   

    问题已经解决!
    另外有没有更好,更简洁的实现该功能的方法(不用addcslashes,而自己写function)
      

  3.   


    <?php
    function my_addcslashes($sStr,$slashStr = null)
    {
    if (empty($slashStr)){
    return $sStr;
    }
    $_sStrLen = strlen($sStr);
    $_slashStrLen = strlen($slashStr);
    $_cStr = null;
    $_cSlashStr = null;
    $sStrResult = null;
    for($i=0;$i<$_sStrLen;$i++)
    {
    $_cStr = $sStr[$i];
    for($j=0;$j<$_slashStrLen;$j++)
    {
    $_cSlashStr = $slashStr[$j];
    if ($_cStr == $_cSlashStr){
    $_cStr = '\\'.$_cStr;
    }
    }
    $sStrResult .= $_cStr;
    }
    return $sStrResult;
    }$str = "hello world yes 01234";
    $charlist = "01234el";
    $string = my_addcslashes($str,$charlist);
    echo $string;
    echo "\n";
    echo 'h\e\l\lo wor\ld y\es \0\1\2\3\4';
    ?>
    你增加转义符后源字符串的长度和位置已经变了,当然会出问题。
    这就和在foreach内部修改原数组一样。没有死循环都算好了。
      

  4.   

    break是跳出循环,不是跳出当前,转到下个循环。