我的代码中第430行的无法在写入上下文中使用函数返回值错误,但我无法理解为什么会出现此错误..
奇怪的是,我只在服务器(PHP 5.3)上得到此错误,而不是在我的localhost(PHP 5.5.10)
return Redirect::route('account-activate-user', (empty(Input::get('code'))) ? '{code}' : e(Input::get('code')))
->with('global', 'De activatie-code is niet geldig.');
有没有人能解决这个问题?
答案 0 :(得分:3)
这是因为您只使用empty()
函数的返回值(Input::get()
),而它只接受变量。考虑Input::get()
如何工作,即您可以在输入未设置时将第二个参数作为默认值传递,您可以完全跳过empty()
检查使用方法:
return Redirect::route('account-activate-user', Input::get('code', '{code}'))
->with('global', 'De activatie-code is niet geldig.');
或者,更接近您的代码:
return Redirect::route('account-activate-user', (Input::has('code') ? '{code}' : e(Input::get('code')))
->with('global', 'De activatie-code is niet geldig.');
答案 1 :(得分:1)
在PHP5.5之前,函数empty()
无法接受返回值。
这意味着Input::get('code')
会返回一个值,并且此值无法传递给empty()
函数。
虽然不是最佳解决方案,但您可以通过这种方式快速解决问题:
$inputCode = Input::get('code');
return Redirect::route('account-activate-user', (empty($inputCode)) ? '{code}' : e($inputCode))
->with('global', 'De activatie-code is niet geldig.');
但是在这里您可以找到重复项:
答案 2 :(得分:1)
我遇到了同样的错误并将PHP版本更新到5.5.x为我修复了它。