Я пытаюсь проверить, существует ли $ _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, и, безусловно, является хорошей практикой не получать доступ к сверхглобальным переменным напрямую, вместо этого использовать фильтр
$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']; }
Пытаться
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;