Unexpected T_PAAMAYIM_NEKUDOTAYIM in PHP 5.2.x

后端 未结 5 1358
情深已故
情深已故 2020-12-18 07:39

I\'m having a hard time understanding why I\'m getting an Unexpected T_PAAMAYIM_NEKUDOTAYIM error in the following code, which seems perfecly valid to me...

5条回答
  •  萌比男神i
    2020-12-18 07:59

    After looking at codepad:

    if (is_object($result) === true)
    {
        $result::id = strval($xpto);
    }
    

    ... should be

    if (is_object($result) === true)
    {
        $result::$id = strval($xpto);
    }
    

    I corrected this in a new paste, and the error still exists... just letting you know about the problem in the demo code.

    EDIT

    Per PHP documentation page on static keyword,

    As of PHP 5.3.0, it's possible to reference the class using a variable. The variable's value can not be a keyword (e.g. self, parent and static).

    Unfortunately, no detail is given as to WHY to was otherwise in prior versions, nor do I see a workaround presented in the comments.

    Because the class is static, though, you should be able to change the property directly:

    function instance($xpto = null)
    {
        static $result = null;
    
        if (is_null($result) === true)
        {
            $result = new xpto();
        }
    
        if (is_object($result) === true)
        {
            xpto::$id = strval($xpto)
        }
    
        return $result;
    }
    

提交回复
热议问题