Могу ли я использовать функцию для возврата параметра по умолчанию в php?
Я хотел бы сделать что-то вроде этого:
function readUser($aUser = loadDefaultUser()){
//doing read User
}
Я обнаружил, что он покажет мне ошибку, как передать значение функции в качестве значения по умолчанию? Спасибо.
Ответ 1
Да, вы можете указать аргумент по умолчанию. Однако аргумент по умолчанию "должен быть постоянным выражением, а не (например) переменной, членом класса или вызовом функции".
Вы можете подделать это поведение, используя некоторое постоянное значение по умолчанию, а затем заменив его на результаты вызова функции при вызове функции.
Мы будем использовать NULL, так как это довольно типичное значение "нет значения":
function readUser($aUser = NULL) {
if (is_null($aUser))
$aUser = loadDefaultUser();
// ... your code here
}
Ответ 2
Я предпочел бы дать значение Null для этого аргумента, а затем вызвать loadDefaultUser() в теле функции. Что-то вроде этого:
Вы можете добавить параметр обратного вызова к функции loadDefaultUser(), когда он завершит его, и вызовет функцию обратного вызова с возвратом/результатом. Это немного напоминает обратные вызовы ajax-javascript.