Shorthand 或 Dispatch switch-statement with function?

Shorthand or Dispatch switch-statement with function?

有什么办法可以shorthand或者dispatch这样一行代码吗?

$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;
}
<?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