Ответ 1
if( isset($_POST['fromPerson']) )
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
Я пытаюсь проверить, существует ли $_POST, и если это так, напечатайте его внутри другой строки, если нет, не печатайте вообще.
что-то вроде этого:
$fromPerson = '+from%3A'.$_POST['fromPerson'];
function fromPerson() {
if !($_POST['fromPerson']) {
print ''
} else {
print $fromPerson
};
}
$newString = fromPerson();
Любая помощь будет замечательной!
if( isset($_POST['fromPerson']) )
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
if (isset($_POST['fromPerson']) )
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
Все говорят использовать isset() - что, вероятно, сработает для вас.
Однако важно понимать разницу между
$_POST['x'] = NULL;
и $_POST['x'] = '';
isset($_POST['x'])
вернет false
в первом примере, но вернет true
во второй, даже если вы попытаетесь распечатать один из них, оба возвращают пустое значение.
Если ваш $_POST
поступает из поля/формы, введенного пользователем, и остается пустым, я ВЕРЮ (на этот раз я не уверен на 100%), что значение будет "", но NOT NULL.
Даже если это предположение неверно (кто-то, пожалуйста, исправьте меня, если я ошибаюсь!) выше все еще хорошо знать для будущего использования.
Удивленный он не упоминался
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['fromPerson'])){
isset($_POST['fromPerson'])
isset
не подходит.Согласно документации PHP: http://php.net/manual/en/function.array-key-exists.php
(см. пример # 2 array_key_exists() vs isset())
Метод array_key_exists
предназначен для проверки присутствия ключа в массиве.
Таким образом, код в вопросе можно изменить следующим образом:
function fromPerson() {
if (array_key_exists('fromPerson', $_POST) == FALSE) {
return '';
} else {
return '+from%3A'.$_POST['fromPerson'];
};
}
$newString = fromPerson();
Правильный способ проверки наличия ключа массива - это функция array_key_exists()
Разница в том, что когда у вас есть $_POST['variable'] = null
, это означает, что ключ существует и отправляется, но значение было null
Другой параметр isset()
, который будет проверять, существует ли ключ массива, и если он был установлен
Последний параметр - использовать empty()
, который будет проверять, существует ли ключ массива, если он установлен, и если значение не считается пустым.
Примеры:
$arr = [
'a' => null,
'b' => '',
'c' => 1
];
array_key_exists('a', $arr); // true
isset($arr['a']); // false
empty($arr['a']); // true
array_key_exists('b', $arr); // true
isset($arr['b']); // true
empty($arr['b']); // true
array_key_exists('c', $arr); // true
isset($arr['c']); // true
empty($arr['c']); // false
Относительно вашего вопроса
Правильный способ проверить, было ли отправлено значение, - использовать array_key_exists() с проверкой метода запроса
if ($_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('fromPerson', $_POST)
{
// logic
}
Но есть некоторые случаи, зависящие от вашей логики, где isset()
и empty()
также могут быть хорошими.
Все методы на самом деле обескуражены, это предупреждение в Netbeans 7.4, и, безусловно, хорошей практикой является не прямой доступ к сверхглобальным переменным, используйте filter вместо
$fromPerson = filter_input(INPUT_POST, 'fromPerson', FILTER_DEFAULT);
if($fromPerson === NULL) { /*$fromPerson is not present*/ }
else{ /*present*/ }
var_dump($fromPerson);exit(0);
Попробуйте isset
($_POST['fromPerson'])
?
if (is_array($_POST) && array_key_exists('fromPerson', $_POST)) {
echo 'blah' . $_POST['fromPerson'];
}
Try
if (isset($_POST['fromPerson']) && $_POST['fromPerson'] != "") {
echo "Cool";
}
if( isset($_POST['fromPerson']) )
прав.
Вы можете использовать функцию и вернуться, а затем направлять эхо.
Мне нравится проверять, если он iset и если он пуст в тройном операторе.
// POST variable check
$userID = (isset( $_POST['userID'] ) && !empty( $_POST['userID'] )) ? $_POST['userID'] : null;
$line = (isset( $_POST['line'] ) && !empty( $_POST['line'] )) ? $_POST['line'] : null;
$message = (isset( $_POST['message'] ) && !empty( $_POST['message'] )) ? $_POST['message'] : null;
$source = (isset( $_POST['source'] ) && !empty( $_POST['source'] )) ? $_POST['source'] : null;
$version = (isset( $_POST['version'] ) && !empty( $_POST['version'] )) ? $_POST['version'] : null;
$release = (isset( $_POST['release'] ) && !empty( $_POST['release'] )) ? $_POST['release'] : null;