syntax error, unexpected 'if' (T_IF)

前端 未结 5 573
臣服心动
臣服心动 2020-12-12 02:09

I think I\'ve been staring at this for too long that now I\'m failing to identify the problem.

Can someone kindly point out where this is going wrong?

Error:

相关标签:
5条回答
  • 2020-12-12 02:43
    public static function textbox($name, $maxlength=''){
        return "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='". if (isset($_POST[$name])) { echo $name; } ."' >";
    }
    

    should be:

    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 . "' >";
    }
    
    0 讨论(0)
  • 2020-12-12 02:47

    You can't use if statements like that.

    To do what you want to achieve you'll need to do this:

    public static function textbox($name, $maxlength=''){
        return "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='".(isset($_POST[$name]) ? $name : '')."' >";
    }
    
    0 讨论(0)
  • 2020-12-12 02:55

    You can't use the if function inside the retuned value string. I would build the string you want to return first, then return it. In my example the string to be returned is $out. Even if the above worked this is easier to read and maintain.

    $out= "<input type='text' id='$name' name='$name'  maxlength='$maxlength' value='";
    if (isset($_POST[$name])) {
        $out.= $name; 
    } 
    $out .='" >";
    return $out;
    
    0 讨论(0)
  • 2020-12-12 02:58

    You cannot use if statements in such a way. Use the ternary operator for that purpose or have your variable pre-made before the concatenation.

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

    Alternative:

    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 ."' >";
    
    }
    
    0 讨论(0)
  • 2020-12-12 03:09

    try it this way:

    public static function textbox($name, $maxlength=''){
        return "<input type='text' id='".$name."' name='".$name."'  maxlength='".$maxlength."' value='".( (isset($_POST[$name]) ? $name:'')."' >";
    }
    
    0 讨论(0)
提交回复
热议问题