Reputation: 666
I'm getting the Can't use function return value in write context error on line 430 in my code, but I can't understand why I'm getting this error..
Strange thing is, I only get this error on the server (PHP 5.3) and not on my 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.');
Does anyone have the solution to this problem?
Upvotes: 2
Views: 6712
Reputation: 806
I was getting the same error and updating PHP version to 5.5.x fixed it for me.
Upvotes: 1
Reputation: 3695
Prior to PHP5.5 the function empty()
cannot accept a return value.
This means that Input::get('code')
returns a value, and this value cannot be passed to an empty()
function.
Although not the best solution you could quickly fix this way:
$inputCode = Input::get('code');
return Redirect::route('account-activate-user', (empty($inputCode)) ? '{code}' : e($inputCode))
->with('global', 'De activatie-code is niet geldig.');
However here you can find duplicates:
Can't use function return value in write context?
Upvotes: 1
Reputation: 25435
It happens because you're using empty()
with the return value of a function (Input::get()
), when it only accepts a variable. Considering how Input::get()
works, i.e. you can pass a 2nd parameter as a default value when the input isn't set, you can skip the empty()
check altogether and just use:
return Redirect::route('account-activate-user', Input::get('code', '{code}'))
->with('global', 'De activatie-code is niet geldig.');
or, closer to your code:
return Redirect::route('account-activate-user', (Input::has('code') ? '{code}' : e(Input::get('code')))
->with('global', 'De activatie-code is niet geldig.');
Upvotes: 3