使用?和的PHP语法:

使用?和的PHP语法:,php,syntax,Php,Syntax,因此,这是可行的: <?php $value = ($_POST['x']) ? $_POST['x'] : $y[0]; $output = '<input type="text" name="field1" value="'.$value.'">'; ?> 但在这种情况下如何使其工作: <?php $output = '<input type="text" name="field1" value="'.$($_POST['x']) ? $_PO

因此,这是可行的:

<?php
 $value = ($_POST['x']) ? $_POST['x'] : $y[0];
 $output = '<input type="text" name="field1" value="'.$value.'">';
?>
但在这种情况下如何使其工作:

 <?php
  $output = '<input type="text" name="field1" value="'.$($_POST['x']) ? $_POST['x'] : $y[0];.'">';  
?>

只需去掉第一个不属于那里的美元,将其用大括号括起来,并去掉分号:

$output = '<input type="text" name="field1" value="'.(($_POST['x']) ? $_POST['x'] : $y[0]).'">';  
value="' . ($_POST['x'] ? $_POST['x'] : $y[0]) .'">';
没有分号:

$output = '<input type="text" name="field1" value="'.(($_POST['x']) ? $_POST['x'] : $y[0]).'">';  
value="' . ($_POST['x'] ? $_POST['x'] : $y[0]) .'">';

我还觉得您希望使用isset$\u POST['x']

减少程序中的代码行数可能是一种优点,在这种情况下恰恰相反。您正在降低代码的可读性,从而降低代码的可维护性。请考虑在您的代码中添加注释,只回答问题。Talk很便宜。告诉我密码莱纳斯·托瓦尔兹。一行代码中有什么不清楚?具体来说:他不知道三元运算符,所以给他另一个代码示例只是一个元答案,对他的问题没有帮助。由于您是stackoverflow的新手,或者这是您的第一份贡献,请在meta上查看这个非常有用的答案,尤其是第10条:谢谢!第一块钱是个打字错误。但是增加额外的括号-从来没有想过这一点。