Не зависящий от версии PHP способ установки значения по умолчанию для входной переменной, которая может быть массивом с отсутствующим индексом - PullRequest
0 голосов
/ 11 ноября 2018

У меня глупая проблема, потому что у меня есть вызовы этой функции по всей моей кодовой базе. Иногда мой код выполняется на PHP 5, 7, и кто знает, что еще.

Мне нужен способ решить эту устаревшую проблему кода, надеюсь, без переписывания каждого вызова существующей функции.

Следует отметить, что передача по ссылке - это главная проблема, с которой я сейчас борюсь.

Возможно ли это?

    function getSetting(& $var, $default=0) {
        if (isset($var)) {
            return $var;
        }
        return $default;
    }

Помните, что иногда в качестве первого параметра передается простая переменная. В других случаях передается массив с несуществующим значением индекса (и, конечно, иногда индекс массива существует и имеет значение).

... исходная причина, по которой я выбрал передачу по ссылке, чтобы функция могла смотреть на внешнее значение.

1 Ответ

0 голосов
/ 11 ноября 2018

обходные пути

Проверка версии для функции

if (version_compare(phpversion(), '7.0', '<')) 
{
    function getSetting() { echo "Old function"; }
} 
else 
{
    function getSetting() { echo "New function"; }
}

это не очень хорошо, но работает, или вы можете иметь 2 файла функций и включать их в зависимости от версии.

...