Функция variable_get при отсутствии переменной с нужным именем возвращает значение, переданное ей во втором аргументе.(по умолчанию - NULL).
Единственная проблема может быть, если переменная с именем существует и имеет такое же значение, как и значение по умолчанию, возвращаемое функцией variable_get.
Значит надо во втором аргументе передать такое значение, которое не может содержать нужная переменная, чтобы отличить значение переменной от значения по умолчанию ОДНОЗНАЧНО..
Тут уже все зависит, так сказать, от контекста.
Если переменная может содержать только число, передаем в значении по умолчанию строку.(например "undefined") или наоборот (переменная - строка, передпем число).
Если переменная содержит только положительное число - передаем отрицательное (например -1)
и т.д.
В крайнем случае передаем какую либо уникальную строку например "jdURshLERgJFDr&834KFJr;lgmeRUhefg;"-)
Комментарии
Для переменной $name
$exist = isset($conf[$name]);
Спасибо. Как-то странно, что нормальной функции не сделали.
долго что ли
global $conf;
return array_key_exists($name, $conf);
}
Так и не понял, в чем проблема?
Нужно выяснить что переменная не "подобна" FALSE, а именно ОТСУТСТВУЕТ?
Ну да. Что переменной нет такой, даже записи в базе.
Функция variable_get при отсутствии переменной с нужным именем возвращает значение, переданное ей во втором аргументе.(по умолчанию - NULL).
Единственная проблема может быть, если переменная с именем существует и имеет такое же значение, как и значение по умолчанию, возвращаемое функцией variable_get.
Значит надо во втором аргументе передать такое значение, которое не может содержать нужная переменная, чтобы отличить значение переменной от значения по умолчанию ОДНОЗНАЧНО..
Тут уже все зависит, так сказать, от контекста.
Если переменная может содержать только число, передаем в значении по умолчанию строку.(например "undefined") или наоборот (переменная - строка, передпем число).
Если переменная содержит только положительное число - передаем отрицательное (например -1)
и т.д.
В крайнем случае передаем какую либо уникальную строку например "jdURshLERgJFDr&834KFJr;lgmeRUhefg;"-)
<?php
define("MY_VARIABLE_IS_UNDEFINED", "jdURshLERgJFDr&834KFJr;lgmeRUhefg;");
...
$var=variable_get("my_var",MY_VARIABLE_IS_UNDEFINED);if($var == MY_VARIABLE_IS_UNDEFINED){
...
}else{
...
} ?>