Я думаю, что слишком долго смотрел на это, и теперь я не могу определить проблему.
Может кто-то любезно указать, где это происходит неправильно?
Ошибка:
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.
Вы не можете использовать такие утверждения.
Чтобы сделать то, что вы хотите достичь, вам нужно будет сделать это:
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=''){ return "<input type='text' id='".$name."' name='".$name."' maxlength='".$maxlength."' value='".( (isset($_POST[$name]) ? $name:'')."' >"; }
Вы не можете использовать выражения 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 ."' >"; }
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 . "' >"; }
Вы не можете использовать функцию if внутри строки перенастроенного значения. Я бы построил строку, которую вы хотите вернуть, и верните ее. В моем примере возвращаемая строка – $out
. Даже если выше работало, это легче читать и поддерживать.
$out= "<input type='text' id='$name' name='$name' maxlength='$maxlength' value='"; if (isset($_POST[$name])) { $out.= $name; } $out .='" >"; return $out;