回显字符串时出现PHP错误

回显字符串时出现PHP错误,php,echo,Php,Echo,我想回显字符串,但遇到了一些问题。 我得到的错误是: 分析错误:语法错误,意外的T_封装的_和_空格,应为T_字符串或T_变量或T_NUM_字符串 代码: 对于($i=1;$i您在尝试串接时混入了PHP标记。将if语句取出并放到它自己的语句中。然后将该变量添加到字符串中: $Text="<option value='".$i."'<?php if(@$_POST['geb_tag'] == '".$i."') { ?> selected <?php ;}?>>

我想回显字符串,但遇到了一些问题。 我得到的错误是:

分析错误:语法错误,意外的T_封装的_和_空格,应为T_字符串或T_变量或T_NUM_字符串

代码:


对于($i=1;$i您在尝试串接时混入了PHP标记。将if语句取出并放到它自己的语句中。然后将该变量添加到字符串中:

$Text="<option value='".$i."'<?php if(@$_POST['geb_tag'] == '".$i."') { ?> selected <?php ;}?>>".$i."</option>"

尝试串接时,PHP标记混合在一起。请将if语句取出并放到它自己的语句中。然后将该变量添加到字符串中:

$Text="<option value='".$i."'<?php if(@$_POST['geb_tag'] == '".$i."') { ?> selected <?php ;}?>>".$i."</option>"

有几十种方法可以做到这一点,所以这里还有一种:
printf()
。这是一种古老的方法,可以重新组合字符串(将部分分离出来),从而提高可读性

# a descriptive variable name can improve readability
$posted_value = "";
if( isset( $_POST['geb_tag'] ) ) $posted_value = $_POST['geb_tag'];

for( $i = 0; $i <= 31; $i++ ) {
    printf(
        "<option value='%s'%s>%s</option>",
        $i,
        ($posted_value == $i) ? ' selected' : '',
        $i
    );
}
#描述性变量名可以提高可读性
$posted_value=“”;
如果(isset($_POST['geb_tag']))$posted_value=$_POST['geb_tag']);

对于($i=0;$i有几十种方法可以做到这一点,所以这里还有一种:
printf()
。这是一种老式的重新组合字符串(将部分分离)的方法,可能会提高可读性

# a descriptive variable name can improve readability
$posted_value = "";
if( isset( $_POST['geb_tag'] ) ) $posted_value = $_POST['geb_tag'];

for( $i = 0; $i <= 31; $i++ ) {
    printf(
        "<option value='%s'%s>%s</option>",
        $i,
        ($posted_value == $i) ? ' selected' : '',
        $i
    );
}
#描述性变量名可以提高可读性
$posted_value=“”;
如果(isset($_POST['geb_tag']))$posted_value=$_POST['geb_tag']);

对于($i=0;$i),php标记中不能包含php标记。您缺少分号,我不知道您的目标是否真的是“打印”一些php代码……但我不这么认为。php标记中不能包含php标记。您缺少分号,我不知道您的目标是否真的是“打印”一些PHP代码…但我不这么认为。非常感谢!我真的很喜欢Stackoverfolw!顺便说一句。使用三元运算符(而且更清晰)会更干净。+1 John;-)非常感谢!我真的很喜欢Stackoverfolw!它可以工作。使用三元运算符(并且更清晰)会更干净。+1 John;-)
# a descriptive variable name can improve readability
$posted_value = "";
if( isset( $_POST['geb_tag'] ) ) $posted_value = $_POST['geb_tag'];

for( $i = 0; $i <= 31; $i++ ) {
    printf(
        "<option value='%s'%s>%s</option>",
        $i,
        ($posted_value == $i) ? ' selected' : '',
        $i
    );
}