如何在函数的参数中使用php三元运算符?

时间:2014-03-14 05:34:30

标签: php

我有一个功能,

abc(string $x, bool $y)

如何在函数调用表达式中使用三元运算符?我尝试了这个但是给了

意外的T_RETURN错误

代码:

abc('Hello', return (1==1)?true:false);

4 个答案:

答案 0 :(得分:4)

在像PHP这样的命令式语言中,return仅用于从函数返回。我们称之为return语句,因为它们是函数体中陈述的东西。

另一方面,具有值或评估值的事物(如数字2或表达式2 + 5)称为表达式

您可以将return视为将表达式(即"hello, world!")转换为动作的方式(即return "hello,world!"

你可以想到像名词条款(即“摇滚”)这样的表达和像行动一样的陈述(即“把摇滚给你的老板”)。

在这种情况下,PHP与大多数命令式语言一样,希望您只使用表达式作为函数的参数。

考虑一下 - 将一个动作作为参数传递给一个函数,或者一起添加两个动作是什么意思?

在您拥有的代码中,您希望调用abc,第一个参数设置为'Hello',第二个参数设置为表达式(1 == 1)?true:false的值。在这种情况下,您不需要return语句,因为(1==1)?true:false已经是表达式,所以您可以这样做:

abc('Hello', (1==1)?true:false);

答案 1 :(得分:2)

你不需要那里的return。尝试用

替换上面的行
abc('Hello',  (1==1)?true:false);

答案 2 :(得分:0)

试试这个

  abc('Hello', $y = (1==1)?true:false);

  function abc($x, $y)
  {
    echo $x."  ".$y; 
  }

输出:

Hello 1

答案 3 :(得分:0)

由于$y已经被认为是布尔值,因此您的呼叫中不需要三元运算符。三元运算符使用布尔值在两个其他值之间进行选择;如果那些其他值仅为truefalse,则该语句是多余的。你可以简单地写一下:

abc('Hello', 1==1);