У меня есть функция, которая вызывается без уведомления пользователя, и она просто создает строку в моей базе данных.
Функция это одна:Как передать результат функции как значение по умолчанию для другой функции?
public function createRow($year = 2015) {
$query = DB::table('myTable')->where('year', '=', $year)->get()->first();
// The rest of the function doesn't matter
}
Проблема здесь состоит в том, что мне нужно значение по умолчанию для этой функции будет за год до фактического года. Для того, чтобы сделать это, я пытался поставить это:
public function createRow($year = date('Y') - 1) {
$query = DB::table('myTable')->where('year', '=', $year)->get()->first();
// whatever
}
Это очевидно, что это не сработало, так что я сделал очень небольшую функцию, возвращающую за год до фактического года, и я пытался использовать результат малая функция в качестве параметра по умолчанию для createRow()
функции:
public function lastYear() {
return date('Y') - 1;
}
public function createRow($year = $this->lastYear()) {
$query = DB::table('myTable')->where('year', '=', $year)->get()->first();
// Whatever
}
Я также попытался определения глобальной переменной:
protected $lastYear = date('Y') - 1;
, но я получил ошибку:
expression is not allowed as field default value
Надеюсь, вы можете мне помочь.
спасибо.
Большое спасибо, я полностью забыл об этом. Спасибо, что напомнил мне об этом. Это то, что я искал. – Xulvi