Как проверить пустая ли переменная php
Если переменная объявлена, но ей изначально не присвоено никакого значения (иначе говоря она не инициализирована), или если переменная вовсе неопределена, то нам будет проблематично ее использовать. Например:
При попытке вывести значение переменной мы получим диагностическое сообщение о том, что переменная не определена:
Ситуация может показатся искуственной. Тем не менее нередко переменные в PHP получают некоторые данные извне, например, ввод пользователя. Соответственно возникает необходимость перед использованием данных проверить, что эти данные определены, что они имеются.
Для проверки существования переменной PHP предоставляет ряд встроенных функций.
Оператор isset
Функция isset() позволяет определить, инициализирована ли переменная или нет. Если переменная определена, то isset() возвращает значение true . Если переменная не определена, то isset() возвращает false . Также если переменная имеет значение null функция isset() также возвращает false .
Здесь переменная $message не инициализирована, поэтому выражение isset($message) будет возвращать значение false .
Теперь пусть переменная $message имеет начальное значение:
В этом случае выражение isset($message) будет возвращать true , поэтому будет выполняться инструкция echo $message :
Однако если переменной присвоено начальное значение null , то опять же будет считаться, что эта переменная не установлена:
empty
Функция empty() проверяет переменную на «пустоту». «Пустая» переменная — это переменная, значение которой равно null , 0, false или пустой строке — в этом случае функция empty() возвращает true :
Здесь переменная $message хранит пустую строку, поэтому выражение empty($message) возвратит true .
При этом если строка содержит даже хотя бы один пробел и больше ничего ( $message = » » ), то такая строка уже не считается пустой.
unset
С помощью функции unset() мы можем уничтожить переменную:
Но, как правило, необходимость в подобном удалении переменной возникает редко, так как PHP автоматически удаляет переменные, когда завершается выполнение контекста (например, функции), в котором определены эти переменные.
Using the empty() Function in PHP
This tutorial will teach you how to use the empty() function in PHP.
In PHP the empty() function allows you to check whether a variable is empty / has no value. This function behaves slightly differently from PHP’s isset() function which is used to check if a variable is set.
The empty() function will consider your value empty if the variable doesn’t exist or is assigned a value that is zero, false, or considered “empty” by PHP.
For example, if your variable is defined as a string but doesn’t contain any actual characters such as «» then it will be considered “empty” by this function.
This function is useful for ensuring that you actually have a usable value in your variable.
Syntax of the empty() Function in PHP
This first section will explore the syntax of the empty() function within PHP. The syntax tells you a few things about the function, such as what data it expects and what it will return.
From the syntax you can see that the empty() function takes a single parameter. Therefore, this parameter will be the variable you want to check if it is “empty” or not.
Also, this same syntax shows that PHP will return a bool value ( true or false ).
The empty() function’s single parameter allows you to pass in a variable you want to be checked. This variable can be of any data type and does not even need to exist.
If the variable does not exist or has a false value, the empty() function will return true .
Alternatively, if the variable exists and has a valid value, the function will return false .
Truth Table for the empty() Function
With the table below, you can easily see situations in which PHP’s empty() function will return true or false .
It is much more sensitive than the isset() function as it considers the variable’s value and not just whether it is set.
Expression | empty() Return |
---|---|
$x = “”; | true |
$x = []; | true |
$x = true; | false |
$x = null; | true |
$x is undefined | true |
Read on further to see examples of the empty() function used within PHP.
Using PHP’s empty() Function in your Code
This section will show you a couple of examples of how you can use the empty() function within PHP.
It is a reasonably simplistic function but one you will find useful in a wide variety of use cases.
Basic Usage of the empty() Function
Let us start with a simple usage of the empty() function within PHP.
With this example, we will create two variables. The first variable called “ $x ” will be assigned the value 0 , which is an empty value.
The second variable will be called “ $y “, and we will give it the PHP string value «PiMyLifeUp» .
For both variables we will use PHP’s empty() function to check whether they are empty. Finally the result is dumped to the output thanks to us using the “ var_dump() ” function.
The advantage of using the var_dump() function is that it will tell us both the return variable and the data type returned.
Below you can see how the empty() function worked on our two variables. You can see the “ $x ” variable was considered “empty”, and the “ $y ” variable was not.
Using empty() on an Array Element
Another great use of the empty() function in PHP is to check array elements in an associative array.
This is especially useful as you can check whether an array element exists and if it contains a non-empty value.
With this example, we start by creating an associative array named “ $x ” and assigning it various values. Our “ published ” and “ views ” keys will both contain empty values.
Next, we will use the empty() function within multiple if statements. We check whether a key in our array is not empty with each conditional statement.
By using the logical not operator ( ! ), we are inverting the result of the function, meaning the if statement will only trigger if the value is not empty.
If the value is set, we use PHP’s echo statement to print the value to the screen.
Below is the output you should get from the above example. Since both our “ published ” and “ views ” keys are considered empty, they will not be printed,
Using empty() on every Empty Value
This final example is simply here to show the cases in which the empty() function will return true in PHP.
So let us start this example by defining several variables. From this example, you will notice one edge case. The possible empty values are added into an “ empty_values ” array.
We use a foreach loop to go over each value in this array. Next, we use var_dump() to print the value and its type. We then use echo to print a statement based on the result of the ternary operator.
If the value is “empty()”, the text “ is empty ” will be printed. Otherwise, the text “ is not empty ” will be printed.
Finally, we use the PHP_EOL constant to add a couple of new lines to the bottom of each result.
After running the above example, you should see the following result output to the page. page. There is one peculiar result here: the string «0» is also considered empty.
PHP considers the string «0» to be empty because when type juggling occurs, it turns the value into 0, which is a false value.
If you need PHP not to consider that value empty, you will need to add an additional check to ensure the value is not equal to the string «0» , as shown below.
Conclusion
This guide showed you how to use the empty() function in PHP.
This function is simple to use but is incredibly useful. It allows you to ensure that the variable you are dealing with both exists and has a valid value.
Please comment below if you have any issues using the empty() function.
We also have a wealth of other PHP tutorials if you want to learn more about this language. Be sure also to check out our many other programming tutorials.
Проверка на существование и пустоту в PHP
Часто возникают ситуации, когда нужно проверить существование или пустоту переменной. В PHP для этого есть функции isset() , empty() и array_key_exists() .
Проверка существования переменной
Функция isset() возвращает true , если переменная существует и её значение не null :
Если передать в isset несколько переменных, она вернёт true при существовании всех переменных:
Результат в браузере:
Операторы объединения с NULL
В PHP 7 появился оператор объединения с NULL (или NULL-коалесцентный оператор) ?? . Он позволяет получить значение переменной, если она задана и не равна NULL, а иначе — значение по-умолчанию:
В PHP 7.4 появился присваивающий оператор объединения с NULL ??= .Он позволяет удобно задать значение переменной, если эта переменная ещё не задана (либо равна NULL):
Проверка на пустоту
Напомню, переменная считается пустой (приводится к false), если она имеет одно из следующих значений:
- 0 (целое или дробное)
- '' (пустая строка)
- '0' (строка с числом 0)
- [] (пустой массив)
- null
Функция empty() возвращает true , если переменная не существует или пустая:
Поведение isset() и empty() сначала может немного запутать: первая возвращает true при существовании переменной, вторая — при не существовании. К этому нужно просто привыкнуть.
На самом деле isset() и empty() , аналогично echo , являются синтаксическими конструкциями, а не функциями.
Функции isset() и empty() гасят ошибку обращения к несуществующей переменной. Это одна из причин, почему они не являются обычными функциями.
Существование элемента массива
Как мы узнали чуть выше, isset() возвращает false , если переменная существует, но имеет значение null .
Бывают ситуации, когда нам необходимо точно знать, существует ли определённый элемент массива или нет, даже если его значение NULL.
Правильная проверка на пустоту переменной?
Можете сказать как правильно делать проверку на пустоту переменной?
А точнее, нужно сделать проверку, что бы переменная не была пустой. Ну у каждой проверки я нашел минус, поэтому скажите как правильно проверять переменную?
$text = $_POST[‘text’];
if (isset($text)) <> //если переменная ровна пустоте, то проверка проходит
if (!empty($text)) <> //если переменная равна 0 0.0 ‘0’ то проверка не проходит
if ($text !== ») <> //если переменная равна null то проверка проходит
if ($text) <> //если переменная равна 0 0.0 ‘0’ то проверка не проходит
Как правильно проверять? Скажите, очень хочу в этом моменте разобраться раз и навсегда)
- Вопрос задан более трёх лет назад
- 50925 просмотров
- Вконтакте
Читая ответы, хочется плакать.
В кои-то веки нашелся автор, который осилил корректно сформулировать свою проблему: в дополнение к стандартной проверке РНР, ему надо отбрасывать и нули тоже. Казалось бы — прочти и сделай по заказанному.
Но нет. Один герой все бубнит про «это исходит от Вашей задачи» (при том что задача описана!) и дальше пишет бессмысленный код. Второй, по своей стародавней привычке, просто с умным видом пишет бессмыслицу. С третьего взятки гладки — типичное похапешное создание, пишет код не приходя в сознание.
И при этом никто (включая автора) почему-то не догадался тупо перечислить условия задачи:
Не говоря уже о том, что подумав, можно сообразить, что автора интересует длина строки. И написать код, который корректно, но не столь императивно следует всем условиям задачи:
Самое печальное, что писать это всё — пустая трата времени.
Серая похапешнаая масса так и останется серой массой, не понимающей языка, на котором она пишет, но всегда готовой дать совет ближнему.