语法错误,意外'if'(T_IF)

时间:2013-07-29 02:01:13

标签: php

我想我已经盯着这个太久了,现在我没有发现问题。

有人可以指出哪里出错了吗?

错误:

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语句行生成。

5 个答案:

答案 0 :(得分:1)

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

要做你想要达到的目标,你需要这样做:

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

答案 1 :(得分:1)

以这种方式尝试:

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

答案 2 :(得分:1)

您不能以这种方式使用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 ."' >";

}

答案 3 :(得分:0)

您不能在重新调整的值字符串中使用if函数。我会先构建你想要返回的字符串,然后返回它。在我的示例中,要返回的字符串是$out。即使以上工作,这也更容易阅读和维护。

$out= "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='";
if (isset($_POST[$name])) {
    $out.= $name; 
} 
$out .='" >";
return $out;

答案 4 :(得分: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 . "' >";
}