PHP简写(三元)函数

标签 php if-statement ternary

在 javascript 世界中,我们可以通过三元比较来运行一个函数,我想看看这是否适用于 PHP,似乎只是在一定程度上适用。

这不用于生产用途,也不会实际使用。这只是一个话题,看看PHP对三元比较的深入程度。

<?
 $a = 1;
 $b = 1;

 function doThis($a){
     print "$a";
 }

 $a == $b ? ( doThis('TRUE') ):( print "FALSE" );
?>

上面的代码工作得很好,但是,是否可以在 () 内运行多个函数和/或操作?

比如?

 $a == $b ? ( doThis('TRUE'), doThis('THAT') ):( print "FALSE" );

甚至?

$a == $b ? ( function(){ print "33"; doThis("TRUE") } ):( print "FALSE" );

最佳答案

您可以让三元返回一个执行请求功能的闭包

 $func = $a==$b?function(){ print "33"; doThis("TRUE"); }:function(){ print "FALSE"}); );
 $func();

或者借用 JavaScript,你可以创建一个 IIFE(立即调用函数表达式)

 $a==$b?call_user_func(function(){print "33"; doThis("TRUE");}):
        call_user_func(function(){print "FALSE"; });

关于PHP简写(三元)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197566/

相关文章:

php - 如果我使用CodeIgniter中的函数或类来生成表来存储我的用户信息,它是否安全或可能?

php - 星级评分显示不正确

java - 为什么 else 语句没有初始化?

c++ - 如何正确使用三元运算符

Javascript 三元 w/for 循环错误; "Uncaught SyntaxError: Unexpected token for"

PHP session 添加 header Pragma : no-cache

javascript - 如何使用 javascript 动态激活提交按钮以通过 POST 发送表单数据?

c++ - 为什么三元运算符在我的代码中不起作用?

vb.net - 什么是 bool 标志

c# - 如何将嵌套的三元运算符转换为嵌套的 if-else 语句?