dts777777 2017-10-04 07:34
浏览 73
已采纳

PHP语法缩短if语句

Disclaimer : the following is a bad practice (but it would be useful in a very, very specific use)

Is there a way to shorten (in a not-so-nice-way-but-shorter) if statements : instead of :

if(5 == $foo){
   $b = 98;
   $c = 98 * $otherVariable;
   //do something complex
   doSomethingElse($b, $c);
}

This example would become shorter, even if it is formatted by an IDE. It would become something like that (but this does not work):

(5 == $foo) && { $b = 98;
   $c = 98 * $otherVariable;
   //do something complex
   doSomethingElse($b, $c);}
  • 写回答

2条回答 默认 最新

  • donglanfu5831 2017-10-04 07:41
    关注

    I suggest, you should opt for better readable code, but still if you want to do something different, you may go through below :

    ($foo == 5) && doSomethingElse(98, 98*$otherVariable);
    

    OR

    PHP Ternary Operator

    ($your_boolean) ? 'This is  true' : 'This is false';
    

    You can rewrite your if statement like below :

    ($foo == 5) ? doSomethingElse(98, 98*$otherVariable) : "";
    
    // little shorter but not better readable
    ($foo != 5) ? :  doSomethingElse(98, 98*$otherVariable);
    

    Test Results:

    $ cat test.php
    <?php
    function aa(){ echo "123
    "; }
    
    $foo = 5;
    
    // this will not call aa()
    ($foo == 4) && aa()  ;
    
    // this will call aa()
    ($foo == 5) && aa() ;
    ?>
    
    $ php test.php
    123
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算