Nabeel Munir Ответов: 1

Необходима помощь Php с вложенным оператором if


Привет кодеры,
Я практикую foreach и вложенный if в php.
У меня есть так называемый Жук. Код работает не так, как должен.
У меня есть массив cars и оператор foreach, который циклически проходит через эти элементы массива.
Теперь я использую утверждение if, что если автомобиль bmw, то замените его лучшим автомобилем в мире, а если это volkswagen, то замените его национальным автомобилем. До сих пор он работает хорошо, пока bmw не станет лучшим автомобилем, но он не заменит volkswagen национальным автомобилем, а вместо этого распечатает заявление else и распечатает, что автомобили не найдены. Пожалуйста, проверьте код ниже.
Также скажите, пожалуйста, можно ли заменить audi на ferrari с помощью рекурсивной функции? Я имею в виду, что если я вызываю рекурсивную функцию и когда audi найдена, она заменяет ее на ferarri.

Что я уже пробовал:

<?php

$anarray= array('bmw','volkswagen','volvo','audi','bmw');

foreach($anarray as $value){
    
    echo 'The car is: '.$value.'.'.' ';
    
    
}
if($value == 'bmw')
    {
        echo 'bmw is the best car in the world.'.' '.' ';
        
        if($value == 'volkswagen')
    {
        echo 'volkswagen is a  nation car';
    }
    else{
        echo 'cars not found.';
    }
    }
    
    
    
    


?>

1 Ответов

Рейтинг:
0

OriginalGriff

Проблема в том, что вы не можете "вложить" его таким образом. Подумайте о том, что вы делаете:

if (a == 1)
   {
   if (a == 2)
      {
      ...
      }
   }
Если a если он равен 1, то по определению он также не может быть равен 2 - математика просто так не работает!
Поэтому, когда вы находите совпадение с "BMW", то по определению то же самое значение не может быть и "volkswagen"!

То, что вам нужно использовать, это elseif: PHP.net elseif/else if[^]