Функции для работы с переменными
unset($var, ...)
Удаляет перечисленные переменные.
Поведение unset() внутри пользовательской функции может отличаться, в зависимости от того, какой тип имеет переменная, которую необходимо удалить.
Если переменная, объявленная глобальной, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
/*
bar
*/
?>
Если необходимо удалить глобальную переменную внутри функции, то для этого нужно использовать массив $GLOBALS:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
Если переменная, которая передается ПО ССЫЛКЕ, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().
<?php
function foo(&$bar)
{
unset($bar);
$bar = "blah";
}
$bar = 'something';
echo "$bar\n";
foo($bar);
echo "$bar\n";
/*
something
something
*/
?>
Если статическая переменная удаляется внутри функции, unset() удалит переменную только в контексте дальнейшего выполнения функции. При последующем вызове предыдущее значение переменной будет восстановлено.
<?php
function foo()
{
static $bar;
$bar++;
echo "До удаления: $bar, ";
unset($bar);
$bar = 23;
echo "После удаления: $bar\n";
}
foo();
foo();
foo();
/*
До удаления: 1, После удаления: 23
До удаления: 2, После удаления: 23
До удаления: 3, После удаления: 23
*/
?>
empty($var)
Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE. empty() не генерирует предупреждение если переменная не существует.
Замечание:
До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name))
. Используйте вместо него trim($name) == false
.
Возвращает FALSE, если var существует, и содержит непустое и ненулевое значение. В противном случае возвращает TRUE.
Следующие значения воспринимаются как пустые:
- "" (пустая строка)
- 0 (целое число)
- 0.0 (дробное число)
- "0" (строка)
- NULL
- FALSE
- array() (пустой массив)
- $var; (переменная объявлена, но не имеет значения)
isset($var, ...)
Определяет, была ли установлена переменная значением отличным от NULL.
Если были переданы несколько параметров, то isset() вернет TRUE только в том случае, если все параметры определены. Проверка происходит слева направо и заканчивается, как только будет встречена неопределенная переменная.