函数内的字符串

时间:2016-08-24 05:03:28

标签: php

我写了一个程序,你必须在其中创建一个函数。该函数将需要3个参数$ string,$ start,$ end。在函数内部,您必须在函数内部编写逻辑,以根据$ start和$ end的值自动打印字符串。

我试过这个整个函数工作正常但是数组长度是55但是当我指定$ end = 55然后它返回错误Ending Value Exceeded String length:

function string_function($string,$start,$end){

    $length= strlen($string);

    if($start<0 || $end<0){
        echo "Start or end of string cannot be in negative";    
    }else if($start>$length || $end>$length){
        echo "Entered values exceed more than String's Length";
    }else if($start>$end){
        echo "Start point is greater than end point, Which is Invalid";
    }else if($end<$length){
        $length <= ($end+1);
        for($i=$start; $i<=$end; $i++){
            echo "[$i] => ".$string[$i]."<br>";
        }
        }else{

            echo "Ending Value Exceeded String length";
    }
}
$start = 22;
$end =54;
$string = "I am a programmer and i am passionate about programming";
string_function($string, $start, $end);

欢迎提供帮助。

2 个答案:

答案 0 :(得分:0)

如果部分改为你的其他人:

else if($end<=$length){
    $length <= ($end+1);
    for($i=$start; $i<$end; $i++){
        echo "[$i] => ".$string[$i]."<br>";
    }
}

由于您的数组从第0个索引开始,因此您指定的结尾是数组的长度。但是最大数组索引比总长度小1。因此,您的迭代应该比end变量

少1

[正如评论中所述]

答案 1 :(得分:0)

你只需要改变'&lt;'比较$ end和$ lenght时的'&lt; ='。