|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #65218 Reference class constant from object property
Submitted: 2013-07-07 22:57 UTC Modified: 2013-07-21 17:28 UTC
From: mail at thomasbachem dot com Assigned:
Status: Wont fix Package: Class/Object related
PHP Version: 5.4.17 OS: Mac OS X 10.8
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: mail at thomasbachem dot com
New email:
PHP Version: OS:


 [2013-07-07 22:57 UTC] mail at thomasbachem dot com
When referencing a class constant, as of PHP 5.3.0, it's possible to reference the 
class using a variable, e.g. "$myObj::MY_CONST".

It's not possible however to use that syntax with object properties, e.g. 
"$anotherObj->myObj::MY_CONST". I think that's inconsistent.

Test script:

class MyClass {

   const MY_CONST = 'foo';


$myObj = new MyClass();

// Works, prints "foo"
// echo $myObj::MY_CONST;

$anotherObj = new stdObject();
$anotherObj->myObj = $myObj;

// Raises a parse error
echo $anotherObj->myObj::MY_CONST;

Expected result:
Prints "foo"

Actual result:
Raises "Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM), 
expecting ',' or ';'"


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2013-07-21 17:28 UTC]
-Status: Open +Status: Wont fix
 [2013-07-21 17:28 UTC]
It's completely unclear whether "$anotherObj->myObj::MY_CONST" should refer to the property named by myObj::MY_CONST or the constant of the class named by $anotherObj->myObj.
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Fri Oct 22 07:03:33 2021 UTC