Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php use switch within echo statement

I need to use a statement like switch within echo statement

I found a way for this ,but i think this is not the best way for this when we want to use IF inside echo,write some thing like:

echo ((condition)?'print this if condition is True':'print this if condition is False');

we could use this method for a way like switch:

echo ((case1)?'case 1 result':((case2)?'case2 result':((case3)?'case3 result':'default result')));

are you know a better way for this?

like image 263
odr_m9611 Avatar asked May 08 '26 13:05

odr_m9611


1 Answers

Your example is called ternary operators its basically short hand for an if statement.

So in your second example you're just doing a load of chained if then else's

You're far better off doing something like this

    switch ($type)) {
    case "txt":
         $output = "images/doctypes/icon_txt.gif";
    break;
    case "doc":
         $output = "images/doctypes/icon_doc.gif";
    break;
    case "docx":
         $output = "images/doctypes/icon_doc.gif";
    break;
    case "pdf":
         $output = "images/doctypes/icon_pdf.gif";
    break;
    case "xls":
         $output = "images/doctypes/icon_xls.gif";
    break;
    case "xlsx":
         $output = "images/doctypes/icon_xls.gif";
    break;
    case "ppt":
         $output = "images/doctypes/icon_ppt.gif";
    break;
    case "pptx":
         $output = "images/doctypes/icon_txt.gif";
    break;
    case "rtf":
         $output = "images/doctypes/icon_txt.gif";
    break;
    case "zip":
         $output = "images/doctypes/icon_zip.gif";
    break;
    case "rar":
         $output = "images/doctypes/icon_zip.gif";
    break;
    case "mdb":
         $output = "images/doctypes/mdb.gif";
    break;
    default:
         $output = "images/doctypes/icon_generic.gif";
    };

echo $output;
like image 81
Dave Avatar answered May 10 '26 08:05

Dave



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!