ПОЛУЧИТЬ и ПОСТИТЬ в php7 - PullRequest
0 голосов
/ 03 июля 2018

Просто интересно, работают ли $_GET и $_POST в php7 по-прежнему нормально? Или они на самом деле работают не так, как в старом? Я пытаюсь заставить этот код работать так, чтобы он возвращал параметр 2, когда URL-адрес страницы в какой-то момент читает do = update, но это не так. Кто-нибудь может мне помочь?

<?php
    if (isset($_GET['do']) == "update") {
        $param=2;
    }
    else{
        $param=1;
    }
?>

Я предполагаю, что я должен перенаправить на определенную страницу, когда $ param = 2 после нажатия этой ссылки

<a href="<?php echo $_SERVER['PHP_SELF']?>?menu=user&user_id=<?php echo $user_id; ?>&do=update">Update</a>

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Нет, никаких изменений в этой функции в 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 утверждение неверно.

0 голосов
/ 03 июля 2018

$_GET и $_POST все еще работает. Ваше условие не должно быть:

if (isset($_GET['do']) && $_GET['do'] == 'update') {
    $param = 2;
} else {
    $param = 1;
}

(как забавное примечание, можно упростить до):

$param = (isset($_GET['do']) && $_GET['do'] == 'update' ? 2 : 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...