2

我想我已经盯着这个太久了,现在我无法确定问题所在。

有人可以指出哪里出了问题吗?

错误:

Parse error: syntax error, unexpected 'if' (T_IF) in /Applications/MAMP/htdocs/mipbi/includes/classes/html.php on line 11

代码:

public static function textbox($name, $maxlength=''){
    return "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='". if (isset($_POST[$name])) { echo $name; } ."' >";
}

错误在 if 语句行生成。

4

5 回答 5

2

您不能以这种方式使用 if 语句。为此目的使用三元运算符或在连接之前预先制作变量。

public static function textbox($name, $maxlength=''){
    return "<input type='text' id='$name' name='$name'  
    maxlength='$maxlength' value='". (isset($_POST[$name]) ? $name : '')."' >";
}

选择:

public static function textbox($name, $maxlength='')
{
    if( !isset($_POST[$name] ) {
        $myname = $name;
    } else {
        $myname = '';
    }

return "<input type='text' id='$name' name='$name'  
maxlength='$maxlength' value='". $myname ."' >";

}
于 2013-07-29T02:06:16.743 回答
1

你不能使用这样的 if 语句。

要实现您想要实现的目标,您需要执行以下操作:

public static function textbox($name, $maxlength=''){
    return "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='".(isset($_POST[$name]) ? $name : '')."' >";
}
于 2013-07-29T02:04:47.793 回答
1

试试这种方式:

public static function textbox($name, $maxlength=''){
    return "<input type='text' id='".$name."' name='".$name."'  maxlength='".$maxlength."' value='".( (isset($_POST[$name]) ? $name:'')."' >";
}
于 2013-07-29T02:05:37.663 回答
0
public static function textbox($name, $maxlength=''){
    return "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='". if (isset($_POST[$name])) { echo $name; } ."' >";
}

应该:

public static function textbox($name, $maxlength=''){
    $ret = "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='";
    if (isset($_POST[$name])) { $ret .= $name; }
    return $ret . "' >";
}
于 2013-07-29T02:10:07.453 回答
0

您不能在重新调整的值字符串中使用 if 函数。我会先构建您要返回的字符串,然后将其返回。在我的示例中,要返回的字符串是$out. 即使上述方法有效,这也更易于阅读和维护。

$out= "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='";
if (isset($_POST[$name])) {
    $out.= $name; 
} 
$out .='" >";
return $out;
于 2013-07-29T02:07:39.820 回答