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 QTOF MSE数据分析
  • ¥15 平板录音机录音问题解决
  • ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?
  • ¥15 (SQL语句|查询结果翻了4倍)
  • ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
  • ¥50 .net core 并发调用接口问题
  • ¥15 网上各种方法试过了,pip还是无法使用
  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚