Мне нужна функция php, чтобы проверить, существует ли переменная или нет вне функции, если она не существует, присвойте ей значение по умолчанию. функция будет выглядеть так: function if_exist ($ argument, $ default = ''), где $ аргумент будет любой переменной вне функции, она может быть переменной переменной, а $ default будет значением по умолчанию для переменной, если переменная не существует, большое спасибо заранее, пожалуйста, помогите, спасибо.
ПОЖАЛУЙСТА, ИЗБЕГАЙТЕ ИСПОЛЬЗОВАТЬ ГЛОБАЛЬНЫЙ ОБЪЕМ НА ФУНКЦИИ, потому что я слышал, что это плохо для безопасности сайта.
Вы можете сделать $argument
pass-by-reference :
function if_exist(&$argument, $default="") { if(!isset($argument)) { $argument = $default; return false; } return true; }
DEMO
Есть два способа сделать это. Вы ищете первое ненулевое значение или если установлена фактическая переменная или нет …
Первый случай использования прост … Чтобы получить значение первой переменной, которая не является нулевой, определите функцию как таковую:
function coalesce() { $args = func_get_args(); if(is_array($args)) return null; foreach($args as $arg) { if($arg !== null) return $arg; } return null; }
Использование этой функции очень просто. Просто вызовите coalesce()
с несколькими различными аргументами и он всегда будет возвращать первое ненулевое значение, которое он встречает.
$myVar = coalesce($myVar, null, 'Hello There', 'World'); echo $myVar; // Hello There
Однако, если вы ищете функцию для проверки, определена ли переменная, и если она не определена, вам необходимо создать функцию, которая заставляет первый аргумент быть ссылкой.
function set_default(&$variable, $defaultValue = null) { if(!isset($variable)) { $variable = $defaultValue; return false; } return true; }
Я не понимаю, зачем вам вообще нужна функция.
$a = isset($a) ? $a : "my default string";
Все поймут, что делает ваш код, не прибегая к малоизвестным «функциям» PHP и нужно смотреть на тело своих функций, чтобы увидеть, что он делает.
Хотя это может выглядеть как вызов функции, это не так. isset () – это языковая конструкция ! Вот почему он не будет поднимать Уведомление .
Как насчет этого:
function setGlobalIfNotSet( $variableName, $defaultValue = false ) { if ( ! isset( $variableName )) { global $$variableName; $$variableName = $defaultValue; } }
Возможно, вы ищете isset()
.
EDIT: неправильно интерпретировать.
Вы можете использовать функцию isset
.
function isset_default($v, $default = '') { return isset($v) ? $v : $default; }
Применение:
$v = isset_default($v, 'somedefaultvalue');