я хочу продолжить цикл for, если вызвана функция execute выход(); заявление.
Замечания:
Оставшиеся строки кода не должны обрабатываться, когда $ i = 2; Итак, главное, мне нужна помощь, чтобы выйти из функции, но не для цикла.
Более того, у меня много условий, поэтому я не могу использовать if-else.
я уже пробовал вернуть; заявление но с возвратом; Функция Statement выполняет оставшиеся строки кода, это главная проблема!
Любая помощь будет высоко оценена!
Например
for($i=0;$i<=5;$i++){
$this->calculate($i);
}
function calculate($counter){
if($counter==2){
exit(0);
}
echo "My remaining code lines";
}
ОБНОВЛЕННЫЙ ОТВЕТ
После вашего комментария. Мы должны сообщить циклу for, что мы не хотим продолжать. Поскольку логика разделена, мы можем сделать что-то вроде:
for ($i = 0; $i <= 5; $i++) {
if ($this->calculate($i) == false) {
break;
}
}
function calculate($counter) {
if ($counter == 2) {
return false;
}
echo "My remaining code lines";
return true;
}
ОРИГИНАЛЬНЫЙ ОТВЕТ
Не выходите из функции. Это останавливает любую дальнейшую обработку.
Просто return
:
function calculate($counter){
if($counter==2){
return;
}
Вместо exit
использование return
так как exit
прекращает выполнение, в то время как return
существует только текущая функция.
И вместо if-else
ты можешь использовать swtich-case
, как это:
for($i=0;$i<=5;$i++){
if(!$this->calculate($i))
{
continue;
}
}
function calculate($counter){
switch($counter){
case 2:
return false;
default:
echo "My remaining code lines";
break;
}
}
Редактировать: Я обновил свой ответ, чтобы переместить цикл на следующую итерацию, если метод calculate()
return
s false
,
return
заявление используется.
for(condition){
return();
}
Просто используйте вернуть вместо. Он вернется к вызывающей стороне и, следовательно, вы можете продолжить выполнение.
for($i=0;$i<=5;$i++){
$this->calculate($i);
}
function calculate($counter){
if($counter==2){
return;
}
echo "My remaining code lines";
}
// использовать функцию return () .. exit () остановить выполнение …
function calculate($counter){
if($counter==2){
return;
}
echo "My remaining code lines";
}
?>