在 HTML 输入值的 PHP 变量字符串中设置正确的 if isset 连接


proper concatenation for if isset in a php variable string for an HTML input value

我有一个变量$RepCom如果它已设置,我希望它是输入 RepCom 的值。

我正在努力找出正确的方法来完成这项工作......

$x_RepCom = '<input name="RepCom" type="text" value="'. if(isset($RepCom)){echo $RepCom; }.'">';

只是转储变量很好,但是如果未设置,则会出现未定义错误。

 $x_RepCom = '<input name="RepCom" type="text" value="'.$RepCom.'">';

那么如何将$RepCom的 if isset 放入输入的值中呢?

我试过了。。。

$x_RepCom = '<input name="RepCom" type="text" value="<?php if(isset($RepCom)){echo $RepCom; }?>">';

但这只会将字符串<?php if(isset($RepCom)){echo $RepCom; }?>转储到值中。

我错过了什么?

你有正确的想法,你只是有错误的实现。

$RepComPrint = (isset($RepCom)) ? $RepCom : '';
$x_RepCom = '<input name="RepCom" type="text" value="'.$RepComPrint .'">';
您可能

希望将该值作为变量:

if(!isset($RepCom))
    $RepCom='';
$x_RepCom = '<input name="RepCom" type="text" value="'.$RepCom.'">';

现在,如果未设置,则将为其提供空字符串的值,这将防止未定义的错误。

你是函数式程序员吗?你写的代码($x_RepCom = '<input name="RepCom" type="text" value="<?php if(isset($RepCom)){echo $RepCom; }?>">';)让我想起了它将如何在Scheme或Haskell中实现。

关于PHP的重要一点是,像if这样的控制结构不只是返回一个值;你不能把它任意插入到代码中。

你必须在PHP中做到这一点的方式是这样的

$x_RepCom = '<input name="RepCom" type="text" value="';
if(isset($RepCom)) { $x_RepCom .= $RepCom; }
$x_RepCom .= '>';

(为清楚起见,写了很长的路)