2014-01-13 1 views
1

Интересно, если это возможно, как-то ...PHP: передать функцию внутренней даты() в качестве параметра функции?

function get_event_list($year = date('Y')) { 

    } 

Так что я мог бы назвать эту функцию как get_event_list(2012), но когда не добавляя пункт всегда извлекает все события из текущего года (2014);

С наилучшими пожеланиями, Matt

+0

По http://sandbox.onlinephpfunctions.com/ не;) – cubitouch

ответ

2

Вы могли бы сделать Nullable параметр следующим образом:

function get_event_list($year = NULL){ 
    $year = is_null($year) ? date('Y') : $year; 
    //Code here 
} 

Способ вызова этой функции будет get_event_list(2012) или get_event_list()

4

Лучший способ достичь это сделать:

function get_event_list($year = null) { 
    if (is_null($year)) { 
     $year = date('Y'); 
    } 
} 
3

Вы не можете использовать встроенную функцию в качестве аргумента по умолчанию.

От PHP manual:

Значение по умолчанию должно быть константным выражением, а не (например) переменной, членом класса или вызовом функции.

Что вам нужно может быть достигнуто следующим образом:

function get_event_list($year = null) { 
    if(!isset($year)) { 
     $year = date('Y'); 
    } 
} 
0

Вы можете сделать это, как этот

function get_even_list($year = ""){ 
    if(empty($year)){ 
     $year = date('Y'); 
    } 

    // Whatever you wann do here 
} 

Steve