Req #80093 [Fbk->NoF]: Please add dynamic defining for class constants
Edit report at https://bugs.php.net/bug.php?id=80093&edit=1
ID: 80093
Updated by: php-bugs@lists.php.net
Reported by: flexjoly at vfweb dot nl
Summary: Please add dynamic defining for class constants
-Status: Feedback
+Status: No Feedback
Type: Feature/Change Request
Package: Class/Object related
PHP Version: Irrelevant
Private report: N
New Comment:
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
Previous Comments:
------------------------------------------------------------------------
[2020-09-11 17:07:48] requinix@php.net
What's your use case for needing to define() a constant that has to live on a class?
------------------------------------------------------------------------
[2020-09-11 15:10:28] flexjoly at vfweb dot nl
Description:
------------
Normal constants are made by the function 'define()'.
But something like that is not possible for a class constant. That limits their purpose and
usability very much.
Can you please add a define-function for a class constant?
Then we can use a class with constant to replace all the separate constants.
Nowadays many variables are put in static classes and can be found and used easily. But when using
these for config/settings etc. you need to set them public for direct access. But then they can be
changed, and that is not wanted.
A class constant solves this. For it can be used public, but cannot be changed.
But for settings/config etc. it need to be possible to define a class constant from a variable or
function, just like a normal constant.
Test script:
---------------
class myClass {
const myConst;
const otherConst = 'already set';
public function defineMyConst(){
// first time defining, works fine
self::myConst = 'some value';
// second time defining not allowed, should throw an error
self::myConst = 'other value';
// defining a defined constant is not allowed, and throws an error
self::myConst = 'changing';
}
}
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80093&edit=1
Thread (7 messages)