Есть ли лучший способ проверить POST-переменные в PHP?

StackOverflow https://stackoverflow.com/questions/1209873

  •  06-07-2019
  •  | 
  •  

Вопрос

Я обнаружил, что на своих страницах PHP я получаю строки и строки кода, которые выглядят так:

$my_id = isset(

Я обнаружил, что на своих страницах PHP я получаю строки и строки кода, которые выглядят так:

<*>

Есть ли лучший, более краткий или более читаемый способ проверить этот массив и назначить его локальной переменной, если они существуют, или применить значение по умолчанию, если их нет?

РЕДАКТИРОВАТЬ: я не хочу использовать register_globals () - у меня все равно будет проблема isset.

REQUEST['my_id']) ?

Я обнаружил, что на своих страницах PHP я получаю строки и строки кода, которые выглядят так:

<*>

Есть ли лучший, более краткий или более читаемый способ проверить этот массив и назначить его локальной переменной, если они существуют, или применить значение по умолчанию, если их нет?

РЕДАКТИРОВАТЬ: я не хочу использовать register_globals () - у меня все равно будет проблема isset.

REQUEST['my_id'] : ''; $another_var = isset(

Я обнаружил, что на своих страницах PHP я получаю строки и строки кода, которые выглядят так:

<*>

Есть ли лучший, более краткий или более читаемый способ проверить этот массив и назначить его локальной переменной, если они существуют, или применить значение по умолчанию, если их нет?

РЕДАКТИРОВАТЬ: я не хочу использовать register_globals () - у меня все равно будет проблема isset.

REQUEST['another_var']) ?

Я обнаружил, что на своих страницах PHP я получаю строки и строки кода, которые выглядят так:

<*>

Есть ли лучший, более краткий или более читаемый способ проверить этот массив и назначить его локальной переменной, если они существуют, или применить значение по умолчанию, если их нет?

РЕДАКТИРОВАТЬ: я не хочу использовать register_globals () - у меня все равно будет проблема isset.

REQUEST['another_var'] : 42; ...

Есть ли лучший, более краткий или более читаемый способ проверить этот массив и назначить его локальной переменной, если они существуют, или применить значение по умолчанию, если их нет?

РЕДАКТИРОВАТЬ: я не хочу использовать register_globals () - у меня все равно будет проблема isset.

Это было полезно?

Решение

Как насчет того, чтобы обернуть его в функцию?

<?php

function getPost($name, $default = null) {
    return isset(

Как насчет того, чтобы обернуть его в функцию?

<*>POST[$name]) ?

Как насчет того, чтобы обернуть его в функцию?

<*>POST[$name] : $default; }

Другие советы

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

class Request {

  private $defaults = array();
  private static 

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

# get an instance of the request
$request = Request::getInstance();

# pass in defaults.
$request->setDefaults(array('name'=>'Please Specify'));

# access properties
echo $request->name;
echo $request->email;

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

instance = false; function getInstance () { if (!self::

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

instance) { $c = __CLASS__; self::

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

instance = new $c; } return self::

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

instance; } function setDefaults($defaults) { $this->defaults = $defaults; } public function __get($field) { if (isset(

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

REQUEST[$field]) && !empty(

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

REQUEST[$field])) { return

лучшим методом может быть создание одноэлементного / статического класса для абстрагирования от деталей проверки данных запроса.

Что-то вроде:

<*>

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

REQUEST['field']; } elseif (isset($this->defaults[$field])) { return $this->defaults[$field]; } else { return ''; # define a default value here. } } }

затем вы можете сделать:

<*>

Я думаю, что это делает ваши отдельные скрипты более чистыми и абстрагирует от проверки и т. д. Плюс множество возможностей с этим дизайном, чтобы расширить его / добавить альтернативное поведение, добавить более сложную обработку по умолчанию и т. д. и т. д.

Во-первых, используйте $ _ POST для переменных POST. $ _ REQUEST представляет собой коллаж из множества различных входящих переменных, а не только $ _ POST , и может вызвать проблемы.

Одним из решений вашего вопроса было бы создание функции, которая обрабатывает логику isset () .

function ForceIncomingValue($Key, $Default) {
    if (!isset(

Во-первых, используйте $ _ POST для переменных POST. $ _ REQUEST представляет собой коллаж из множества различных входящих переменных, а не только $ _ POST , и может вызвать проблемы.

Одним из решений вашего вопроса было бы создание функции, которая обрабатывает логику isset () .

<*>POST[$Key])) return $Default; else return

Во-первых, используйте $ _ POST для переменных POST. $ _ REQUEST представляет собой коллаж из множества различных входящих переменных, а не только $ _ POST , и может вызвать проблемы.

Одним из решений вашего вопроса было бы создание функции, которая обрабатывает логику isset () .

<*>POST[$Key]; }

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки


function getPOST($key) {
    if(isset(

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

function getPOST($key, $default = NULL) {
    if(isset(

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки


function getPOST($key) {
    if(isset(

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

<*> <Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key])) { return

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

<*> <Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key]; } }
<Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key])) { return

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки


function getPOST($key) {
    if(isset(

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

<*> <Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key])) { return

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

<*> <Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key]; } }
<Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key]; } else { return $default; } }
<Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key])) { return

Прежде всего, НИКОГДА не используйте переменную $ _REQUEST, это приведет к ошибкам и другим проблемам во время разработки

<*> <Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>POST[$key]; } }
<Код>

обратите внимание, что этот код оставляет переменную пустой, когда $ _POST [$ key] не было установлено

вы также можете адаптировать этот код, чтобы вместо него предоставить (разумное) значение по умолчанию, когда значение не может быть загружено.

<*>

Известен ли ожидаемый набор переменных на момент написания скрипта, или вы хотите сделать это для произвольного набора значений? Если первое верно, вы можете сделать что-то вроде этого:

# This array would hold the names of all the variables you're expecting
# and a default value for that variable name
$variableNames = array (...); 
foreach ($variableNames as $key => $default) {
    if (isset (

Известен ли ожидаемый набор переменных на момент написания скрипта, или вы хотите сделать это для произвольного набора значений? Если первое верно, вы можете сделать что-то вроде этого:

<*>

В основном, это использует способность PHP оценивать переменные для создания других переменных (отсюда двойной доллар для ключа $$ - это означает создание новой переменной, имя которой равно значению $ key).

Я еще не нашел хорошее решение для последней ситуации.

REQUEST[$key])) $key =

Известен ли ожидаемый набор переменных на момент написания скрипта, или вы хотите сделать это для произвольного набора значений? Если первое верно, вы можете сделать что-то вроде этого:

<*>

В основном, это использует способность PHP оценивать переменные для создания других переменных (отсюда двойной доллар для ключа $$ - это означает создание новой переменной, имя которой равно значению $ key).

Я еще не нашел хорошее решение для последней ситуации.

REQUEST[$key]; else $key = $default; }

В основном, это использует способность PHP оценивать переменные для создания других переменных (отсюда двойной доллар для ключа $$ - это означает создание новой переменной, имя которой равно значению $ key).

Я еще не нашел хорошее решение для последней ситуации.

Нулевой оператор объединения PHP. !

  

$ username = $ _GET ['user'] ?? 'Никто';

Для многих переменных, с проверкой требований, каждый может свободно использовать мое ожидаемое function .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top