意外的t_if值错误

时间:2014-09-16 12:44:59

标签: php

我环顾四周,但我没有找到任何东西。

我有这个代码,我试着做一些更改,但我总是在值部分得到相同的错误T_IF。

如何将其修改为没有错误?

else {
    echo "<form action='create-channel.php' method='POST'>
        <input class='form-control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value=" if(isset($error)){echo "$_POST['n_channel']"; } "></p>
        <input class='form-control' name='p_channel' type='text' placeholder='Password'></p>
        <input class='btn btn-primary xst-margin' type='submit' name='submit' value='Submit' /> 
    </form>";
}

7 个答案:

答案 0 :(得分:1)

当您if时,您无法获得echo声明。

你必须回应第一部分。进行if检查。然后重新回应最后一部分:

else {
  echo 'first part';
  if(isset($error)) {
    echo "$_POST['n_channel']"; 
  }
  echo 'last part';
}

答案 1 :(得分:1)

你不能echo或在回声中有一个if作为开始。尝试这样的事情:

else {
    $channel = isset($error) ? $_POST['n_channel'] : '';
    echo "<form action='create-channel.php' method='POST'>";
    echo "<input class='form-control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value=" . $channel . "></p>";
    echo "<input class='form-control' name='p_channel' type='text' placeholder='Password'></p>";
    echo "<input class='btn btn-primary xst-margin' type='submit' name='submit' value='Submit' />";
    echo "</form>";
}

基本上,如果$error已设置,则$channel = $_POST['n_channel'],否则它等于零。然后在主字符串中连接它。

答案 2 :(得分:0)

$error = 111;
if( 1 == 2 )
        echo 1;
else { echo "<form action='create-channel.php' method='POST'>
    <input class='form-control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value=";
    if(isset($error)){echo $_POST['n_channel'];}
    echo "></p>
    <input class='form-control' name='p_channel' type='text' placeholder='Password'></p>
    <input class='btn btn-primary xst-margin' type='submit' name='submit' value='Submit' /> 
                                </form>";
            }

答案 3 :(得分:0)

您正在使用错误的字符串连接。而不是

placeholder='Name Channel' value=" if(isset($error)){echo "$_POST['n_channel']"; } "></p>

使用

placeholder='Name Channel' value='".(isset($error) ? $_POST['n_channel'] : '')."'></p>

答案 4 :(得分:0)

您在字符串中间有if个关键字:

echo "...." if(isset($error)){echo "...."

您需要结束第一个echo语句,然后继续下一个语句:

echo "....";
if(isset($error)){
    echo "....";
}

然后,您也会立即使用意外的字符串:

echo "....";
if(isset($error)){
    echo "....";
}
"...."

由于您正在使用新语句,因此需要提供某种命令。字符串本身不是要执行的语句。我猜你想要echo那个字符串:

echo "....";
if(isset($error)){
    echo "....";
}
echo "....";

PHP代码是一系列要执行的离散命令式语句。你不能混合这样的不同语句,并希望翻译能够知道你的意思,它只会让译员感到困惑。每个语句都需要在语法上正确,需要用分号结束。

答案 5 :(得分:0)

基本上你可以这样做:

else {
  echo 'first part of your string';
  if(isset($error)) {
    echo $_POST['n_channel']; 
  }
  echo 'last part of your string';
}

else {
    echo 'first part of your string' . 
    (isset($error) ? $_POST['n_channel'] : '')
    . 'last part of your string';
}

使用三元运算符

在您的情况下,2个代码将起作用:

else {
    echo '<form action='create - channel . php' method='POST'>
        <input class='form
    - control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value="';
    if (isset($error)) {
        echo $_POST['n_channel'];
    }
    echo '"></p>
        <input class='form - control' name='p_channel' type='text' placeholder='Password'></p>
        <input class='btn btn - primary xst - margin' type='submit' name='submit' value='Submit' />
                                                            </form>';
}

else {
    echo '<form action='create - channel . php' method='POST'>
        <input class='form
    - control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value="'.
    ((isset($error)) ? $_POST['n_channel'] : '' )
    . '"></p>
        <input class='form - control' name='p_channel' type='text' placeholder='Password'></p>
        <input class='btn btn - primary xst - margin' type='submit' name='submit' value='Submit' />
                                                            </form>';
                        }

答案 6 :(得分:0)

你可以试试这个。它对我有用:

echo "<form action='create-channel.php' method='POST'>
        <input class='form-control' name='n_channel' type='text' id='n_channel' placeholder='Name Channel' value=".isset($_POST['n_channel'])." ></p>
        <input class='form-control' name='p_channel' type='text' placeholder='Password'>
        <input class='btn btn-primary xst-margin' type='submit' name='submit' value='Submit' /> 
                                                            </form>";