2013-07-29 82 views
1

我想我一直在盯着這個太長時間,現在我沒有發現問題。語法錯誤,意想不到的'if'(T_IF)

有人可以指出哪裏出錯了嗎?

錯誤:

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語句線產生的錯誤。

+0

有什麼,如果這樣做級聯來一回,然後回聲? – 2013-07-29 02:05:17

+0

它很糟糕,我甚至不能拼寫正確,哈哈。謝謝。 – greenpool

回答

1

你不能使用if語句。

要做到你想實現你需要做什麼:

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

試試這樣說:

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

不能以這樣的方式,如果語句使用。爲此目的使用三元運算符,或在串聯之前預先設置變量。

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 ."' >"; 

} 
0

無法使用IF函數的重新調整值字符串內。我會建立你想要返回的字符串,然後返回它。在我的例子中,要返回的字符串是$out。即使上述工作,這也更容易閱讀和維護。

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

您可以擴展您的建議解決方案爲何/如何解決問題? –

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 . "' >"; 
} 
相關問題