PHP语法解释

时间:2014-02-11 09:37:01

标签: php string syntax

如何将PHP语法翻译成:

if(isset($_GET['q'])//but q=is not empty or <2 because in this case redirect to) { do this } else { do this one }

我希望它不是太大了。

感谢。

更新了问题

为什么此代码不会重定向?

    if(isset($_GET['q']))
{ 
    if(!empty($_GET['q']) || $_GET['q']>2)
    {

    $q = $_GET['q'];
    $q = mysql_real_escape_string($q);
    $sql = $db->prepare ('SELECT * FROM t WHERE a = :a');
    $sql->bindParam(':a',$q);
    $sql->execute();

    }

    else

    {

      header("Location:somepage.php");

    }

} else {

$sql = $db->prepare ('SELECT * FROM t ORDER BY b');
$sql->execute();

}

3 个答案:

答案 0 :(得分:2)

这样做

<?php
if(isset($_GET['q']))
{
    if(!empty($_GET['q']) || $_GET['q']<2)
    {
        header("location:somepage.php");
    }
    else
    {
        echo "Cannot be redirected";
    }
}

答案 1 :(得分:2)

什么?你的意思是你所拥有的“文本”的代码吗?

if(isset($_GET['q']) && (!empty($_GET['q']) || $_GET['q'] < 2)) {
  // redirect here using header("location: foo.php") or some other function if you are using some framework.
}
else {
  /otherwise do something else.
}

更新至您更新的问题:

因为$_GET['q']不是空的?做一个var_dump $_GET,以便我们和你知道那里有什么。否则就不可能说出来。但我认为你的代码完全按照你的要求去做。你只是没有完成你想要完成的事情。

答案 2 :(得分:1)

我认为此处q是一个数字。

if (isset($_GET['q']) {
    if (empty($_GET['q'] || $_GET['q'] < 2)) {
        // do redirect here
    } else {
        // do mysql here
    }
}