Edit report at https://bugs.php.net/bug.php?id=65218&edit=1

 ID:                 65218
 Updated by:         ar...@php.net
 Reported by:        mail at thomasbachem dot com
 Summary:            Reference class constant from object property
-Status:             Open
+Status:             Wont fix
 Type:               Feature/Change Request
 Package:            Class/Object related
 Operating System:   Mac OS X 10.8
 PHP Version:        5.4.17
 Block user comment: N
 Private report:     N

 New Comment:

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.


Previous Comments:
------------------------------------------------------------------------
[2013-07-07 22:57:29] mail at thomasbachem dot com

Description:
------------
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:
---------------
<?php

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 ';'"


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=65218&edit=1

Reply via email to