Viewed   97 times

I'm getting this error and I can't make head or tail of it.

The exact error message is:

Fatal error: Can't use function return value in write context in /home/curricle/public_html/descarga/index.php on line 48

Line 48 is:

if (isset($_POST('sms_code') == TRUE ) {

What could be going on here?

Here's the full function:

function validate_sms_code() {

    $state = NOTHING_SUBMITED;

    if (isset($_POST('sms_code') == TRUE ) {
        $sms_code = clean_up($_POST('sms_code'));
        $return_code = get_sepomo_code($sms_code);

        switch($return_code) {

          case 1:
            //no error
            $state = CORRECT_CODE;

          case 2:
            // code already used
            $state = CODE_ALREADY_USED;

          case 3:
            // wrong code
            $state = WRONG_CODE;

          case 4:
            // generic error
            $state = UNKNOWN_SEPOMO_CODE;

            // unknown error
            $state = UNKNOWN_SEPOMO_CODE;
            throw new Exception('Unknown sepomo code: ' . $return_code);

    } else {
        $state = NOTHING_SUBMITED;



You mean

if (isset($_POST['sms_code']) == TRUE ) {

though incidentally you really mean

if (isset($_POST['sms_code'])) {
Monday, December 26, 2022

The answer was due to hidden characters located in the lessons.db file.

The error shown had nothing to do with this and I would like to thank everyone who took the time to give their two pence.

Wednesday, November 23, 2022

Try changing



                  ^^       ^^

$_COOKIE is an associative array.

Sunday, October 30, 2022

You access the property in the wrong way. With the $this->$my_value = .. syntax, you set the property with the name of the value in $my_value. What you want is $this->my_value = ..

$var = "my_value";
$this->$var = "test";

is the same as

$this->my_value = "test";

To fix a few things from your example, the code below is a better aproach

class my_class {

    public  $my_value = array();

    function __construct ($value) {
        $this->my_value[] = $value;

    function set_value ($value) {
        if (!is_array($value)) {
            throw new Exception("Illegal argument");

        $this->my_value = $value;

    function add_value($value) {
        $this->my_value = $value;

$a = new my_class ('a');
$a->my_value[] = 'b';

This ensures, that my_value won't change it's type to string or something else when you call set_value. But you can still set the value of my_value direct, because it's public. The final step is, to make my_value private and only access my_value over getter/setter methods

Tuesday, November 29, 2022

You're assigning a variable and not comparing it

This refcheck($referer) = false

Should be refcheck($referer) == false

Also, your method should have a default return if your IF condition fails.

Friday, September 9, 2022
Only authorized users can answer the search term. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :