2

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?

Thomas De Marez
  • 668
  • 8
  • 24

3 Answers3

3

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.');
Damien Pirsy
  • 25,319
  • 8
  • 70
  • 77
1

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?

Community
  • 1
  • 1
ilpaijin
  • 3,645
  • 2
  • 23
  • 26
1

I was getting the same error and updating PHP version to 5.5.x fixed it for me.

Mittal Patel
  • 806
  • 6
  • 8