Есть ли лучший способ проверить POST-переменные в PHP?
-
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 .