if ($form->isValid()) {
// ... perform some action, such as saving the task to the database
$nextAction = $form->get('saveAndAdd')->isClicked()
? 'task_new'
: 'task_success';
return $this->redirect($this->generateUrl($nextAction));
}
以下是文档的链接
http://symfony.com/doc/current/book/forms.html
类文档说它返回一个bool。
有什么意义
? 'task_new'
: 'task_sucess';
答案 0 :(得分:6)
这被称为“三元”,它很棒:
这是根据条件分配值$nextAction
。第一部分(在=
之后)是条件,如if
语句,第二部分(在?
之后)是条件为真时分配的值,最后一部分part(在:
之后)是条件为false时分配的值。
//the condition
$nextAction = $form->get('saveAndAdd')->isClicked()
? 'task_new' //true value
: 'task_success'; //false value
这是一种较短的写作方式:
if ($form->get('saveAndAdd')->isClicked()) {
$nextAction = 'task_new';
}
else {
$nextAction = 'task_success';
}
所以,这里有一些简单的例子:
$foo = (true) ? 'True value!' : 'False value!';
echo $foo; //'True value!' of course!
$foo = (false) ? 'True value!' : 'False value!';
echo $foo; //'False value!' of course!
答案 1 :(得分:3)
这是三元运营商。语法如下:
value = (condition) ? run if true : run if false;
在这种情况下,如果$form->get('saveAndAdd')->isClicked()
为真,那么task_new
。其他task_success
。
如果可以像这样重写:
if($form->get('saveAndAdd')->isClicked()) {
$value = "task_new";
} else {
$value = "task_success";
}
答案 2 :(得分:1)
三元运算符是if语句的缩写形式。 :是“其他”部分。 Java中的示例:
boolean bool;
true ? bool = true : bool = false;
这是一个毫无意义的例子,但很好地展示了三元运算符。 如果条件,这里true为“true”,则填入变量bool true,否则为false。
用Java替代if语句到上面的代码示例:
boolean bool;
if(true)
bool = true;
else
bool = false;
答案 3 :(得分:0)
这是一个Ternary Operator,是一个简短的if else
语句。这相当于
if($form->get('saveAndAdd')->isClicked()){
$nextAction = 'task_new'
else{
$nextAction = 'tassk_success'
}
答案 4 :(得分:0)
这是三元运算符,一个与if
$value = someFunc() ? "whatever" : "the other"
相当于
if (someFunc()) {
$value = "whatever";
} else {
$value = "the other";
}
答案 5 :(得分:0)
这相当于“if”和“else”语句。
此代码:
$nextAction = $form->get('saveAndAdd')->isClicked()
? 'task_new'
: 'task_success';
等同于此代码:
if ( $form->get('saveAndAdd')->isClicked() )
{
$nextAction = 'task_new';
}
else
{
$nextAction = 'task_success';
}