Функция php для проверки переменной существует или не находится вне функции

Мне нужна функция 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');