После того, как переменная была назначена, вы не сможете сказать, откуда она (обычно).
Рассмотрите возможность сделать что-то подобное, потому что, если вы используете $_REQUEST
, это может быть даже от $_COOKIE
!
if (isset($_GET['label'])) {
// do redirect
} elseif (isset($_POST['label'])) {
// do something else
}
Или, если вы передаете переменная глубоко вниз, где вы не можете сказать, где он первоначально пришел из:
class RequestParameter
{
private $name;
private $value;
private $source;
public function __construct($name)
{
$this->name = $name;
if (isset($_POST[$name])) {
$this->value = $_POST[$name];
$this->source = INPUT_POST;
} elseif (isset($_GET[$name])) {
$this->value = $_GET[$name];
$this->source = INPUT_GET;
}
}
public function isFromGet()
{
return $this->source === INPUT_GET;
}
public function getValue()
{
return $this->value;
}
}
$a = new RequestParameter('label');
if ($a->isFromGet()) {
// do redircet
}
Но я хотел бы предложить структурировать свой код таким образом, что это не обязательно. Один из способов, чтобы проверить, был ли сделан POST:
$_SERVER['REQUEST_METHOD'] === 'POST'
Используйте '$ _GET' и' $ _POST'? –
При каких обстоятельствах метка произвольно отправляется из * либо * '$ _GET', либо' $ _POST'? –
Похоже, ваш код плохо структурирован. – Leri