Php 带函数的速记或调度开关语句?

Php 带函数的速记或调度开关语句?,php,if-statement,optimization,switch-statement,shorthand,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 st

有没有办法速记或发送到一行代码

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

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

结果:这是由
theme\u mod
s:
<?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;
?>