2017-09-02 16 views
1

有什么办法来速记调度这到单行代码?速记或派遣开关语句的功能?

$asd='http://asd.asd'; 
// $asd='[email protected]'; 
// $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
<?php 

    $asd = 'http://asd.asd'; 
    // $asd = '[email protected]'; 
    // $asd = '+123123'; 

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

    echo $qwe; 
?> 

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

+0

太美了。谢谢! :) – eapo

+0

结果︰https://ideone.com/W35QFP 这是#themepress触发的'theme_mod's: '<?php echo properContact(wp_kses_post(get_theme_mod('feedback_name_1')),wp_kses_post(get_theme_mod( 'feedback_url_1'))); ?>' – eapo