【问题标题】:Shorthand or Dispatch switch-statement with function?具有功能的速记或调度开关语句?
【发布时间】:2018-02-11 15:19:08
【问题描述】:
有什么方法可以速记或分派到一行代码?
$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
if-statement
optimization
switch-statement
shorthand
【解决方案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。
【讨论】:
-
结果:ideone.com/W35QFP 这是由theme_mods 触发的#wordpress:<?php echo properContact(wp_kses_post( get_theme_mod( 'feedback_name_1' )),wp_kses_post( get_theme_mod( 'feedback_url_1' ))); ?>