Как установить параметр функции PHP для переменной в качестве значения по умолчанию

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

Что-то вроде этого

$testTF = "T"; function Test($test=$testTF){ echo $test; } Test("Go"); 

Конечно, это не сработает, но мне интересно, есть ли способ заставить его работать, как предполагалось. Эта функция посыпается повсюду в скрипте и должна быть в определенных местах, поэтому я не могу просто сгруппировать их все вместе в одном выражении if, потому что это сломает их.

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

благодаря

Не могли бы вы сделать это?

 $testTF = "T"; function Test($test=NULL){ if ($test ===NULL) { global $testTF; $test = $testTF; } echo $test; } Test("Go"); 

При желании, если вы против использования глобальных переменных, вы можете инкапсулировать значение по умолчанию в функции, например:

 function Test($test=NULL){ if ($test ===NULL) { $test = getDefault(); } echo $test; } Test("Go"); function getDefault(){ //pull default value from wherever $testDefault = 'T'; return $testDefault; } 

Короткий ответ – это то, как вы хотите сделать это невозможно, но это также дубликат: функция PHP с переменной как значение по умолчанию для параметра

Имеет ответ, который вы искали 🙂

Вы также можете сделать это с закрытием:

 $testTF = 'T'; $Test = function ($test = null) use ($testTF){ if ($test === null) $test = $testTF; echo $test; }; $Test(); //T $Test(null); //T $Test('Go'); //Go