具有功能的速记或调度开关语句?

时间:2017-09-02 23:59:26

标签: php if-statement optimization switch-statement shorthand

有没有办法将简写发送这个用于单行代码?

$asd='http://asd.asd';
// $asd='asd@asd.asd';
// $asd='+123123';

switch ($asd){
    case strpos($asd, 'http')===0:
        $qwe='href';
        break;
    case strpos($asd, '@')>1:
        $qwe='mailto';
        break;
    case strpos($asd, '+')===0:
        $qwe='tel';
        $break;
}

1 个答案:

答案 0 :(得分:1)

<?php

   $asd = 'http://asd.asd';
   // $asd = 'asd@asd.asd';
   // $asd = '+123123';

   $qwe = (strpos($asd, 'http') === 0 ? 'href' : (strpos($asd, '@') > 1 ? 'mailto' : (strpos($asd, '+') === 0 ? 'tel' : '')));

   echo $qwe;
?>

阅读并不容易,但您希望它只是一行代码。它被称为三元运算符,您可以阅读更多有关它的信息here