Laravel:Can';t使用`Input::get(';foobar';)`作为操作';s的


Laravel : Can't use `Input::get('foobar')` as an action's default parameter value

我正在尝试在控制器中执行以下操作:

public function moveMessagesToArchive( $message_ids = Input::get('message_ids') )
{
    $json = json_encode( $message_ids);
    echo $json;
}

它不断抛出以下错误:

语法错误,意外的"(",应为")"

在函数签名处。是什么导致了这里的问题?

更新

与此同时,我等待着我写下以下工作的原因:

public function moveMessagesToArchive( $message_ids = array() )
{
    $ids =  array();
    if ( ( count($message_ids) !== 0 ) && is_array($message_ids) ) {
        $ids = $message_ids;
    } else if ( Input::get('message_ids') ) {
        $ids = Input::get('message_ids');
    } else {
        return false;
    }
    $json = json_encode( $ids );
    echo $json;
}

这在PHP中是不可能的。根据文件

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

参考示例4

php从来没有支持过您尝试做的事情。

与拉拉维尔毫无关系。