想知道,$ErrorActionPreference
和$_GET
在php7中仍然可以正常工作吗?还是它们实际上以不同于旧方法的方式工作?
我试图使此代码以某种方式工作,即当页面url在某个时刻读取$_POST
时,它返回参数2,但没有这样做。有人可以帮我吗?
do = update
我认为应该在单击此链接后在$ param = 2时重定向到特定页面
<?php
if (isset($_GET['do']) == "update") {
$param=2;
}
else{
$param=1;
}
?>
答案 0 :(得分:4)
$_GET
和$_POST
仍然有效。您的条件不应该是:
if (isset($_GET['do']) && $_GET['do'] == 'update') {
$param = 2;
} else {
$param = 1;
}
(有趣的是,可以简化为):
$param = (isset($_GET['do']) && $_GET['do'] == 'update' ? 2 : 1);
答案 1 :(得分:1)
不,PHP7中的此功能没有更改。这些变量是与HTTP交互的基础,除非真正更改标准,否则它们不会真正更改。无论如何,这与您无关,您只是做了一个荒谬的比较:
isset($_GET['do'])
将返回true
或false
。如果为false
,则它将永远不等于字符串“ update”。如果是true
,则可能是偶然的,因为您使用的是==
而不是===
。但是,无论哪种方式,尝试进行比较都没有逻辑意义。这不是有用的比较
此代码可能更像您想要的:
<?php
$do = $_GET['do'];
if(isset($do)) //only continue if the variable is definitely set
{
if ($do == "update")
{
$param = 2;
}
else
{
$param = 1;
}
}
else
{
//do something else if the variable is not even set - perhaps an error?
}
?>
或者您可能想在所有情况下都将$ param设置为1,除非将“ do”设置为“ update”。您的意图不是100%清楚,但重点是您if
陈述是错误的。