Проблема с php7 <=> переключатель

Я практикую с новизной php7 по сравнению с php5 и я встретился с этой проблемой, когда используется comparador тройного пути <=> и переключатель, так как я получаю неправильный результат, когда я печатаю результат в экране или консоли, оставил им код, надеялся, что они пожалуйста могут объяснять мне причину этого поведения.

<?php

$bar = 1;   
$foo = 2;  

switch ($bar <=> $foo) {
case 0:
   echo "\$bar and $foo are equal";
case -1:
   echo "\$foo is bigger";
case 1:
   echo "\$bar is bigger";
 }
 ?>

Это результат:

$ php numero1.php
$foo is bigger$bar is bigger
2
задан 01.08.2019, 06:36
1 ответ

Проблема

Твоя структура контроля неполная, каждыми case последующий, чтобы возвращать стоимость, нужно считать break

Soluci¦n

Posterior, для каждой case из твоей структуры контроля, последующий, которому ты возвращаешь или возвращаешь стоимость у тебя должен быть один break, который ломал бы или заканчивал ejecuci¦n c¦digo.

Пример структуры контроля switch

$var = 1;

switch($var){
    case 1:
    return "Este valor1";
    break;
    case 2:
    return "Este valor2";
    break;
    case 3:
    return "Este valor3";
    break;
}

C¦digo исправленный

<?php

$bar = 1;   
$foo = 2;  

switch ($bar <=> $foo) {
case 0:
   echo "\$bar and $foo are equal";
   break;
case -1:
   echo "\$foo is bigger";
   break;
case 1:
   echo "\$bar is bigger";
   break;
 }
 ?>

Соединил interés

5
ответ дан 11.11.2019, 02:38

Теги

Похожие вопросы