2017-09-02 48 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