PHP: передать внутреннюю функцию date() в качестве параметра функции?
Интересно, возможно ли это как-то...
function get_event_list( $year = date('Y') ) {
}
Так что я мог бы назвать эту функцию как get_event_list(2012)
, но без добавления пара всегда извлекает все события текущего года (2014);
С наилучшими пожеланиями, Мэтт
4 ответа
Решение
Вы можете сделать параметр обнуляемым следующим образом:
function get_event_list( $year = NULL ){
$year = is_null( $year) ? date('Y') : $year;
//Code here
}
Способ для вызова этой функции будет get_event_list(2012)
или же get_event_list()
Лучший способ добиться этого - это:
function get_event_list( $year = null ) {
if ( is_null($year) ) {
$year = date('Y');
}
}
Вы не можете использовать встроенную функцию в качестве аргумента по умолчанию.
Из руководства по PHP:
Значением по умолчанию должно быть константное выражение, а не (например) переменная, член класса или вызов функции.
То, что вам нужно, может быть достигнуто следующим образом:
function get_event_list($year = null) {
if(!isset($year)) {
$year = date('Y');
}
}
Вы можете сделать это так
function get_even_list($year = ""){
if(empty($year)){
$year = date('Y');
}
// Whatever you wann do here
}
Стив