const var, self:: or static:: [message #177963] |
Wed, 02 May 2012 09:45 |
Simon
Messages: 29 Registered: February 2011
Karma: 0
|
Junior Member |
|
|
If I have something like...
//
class MyClass
{
const MY_CONST = 10;
...
}
//
Inside the class, is it 'better' to use self::MY_CONST or static::MY_CONST?
I say 'better' because it works in both cases.
Or is it just a personal choice.
Thanks
Simon
|
|
|
Re: const var, self:: or static:: [message #177964 is a reply to message #177963] |
Wed, 02 May 2012 11:13 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 5/2/2012 5:45 AM, Simon wrote:
> If I have something like...
>
> //
> class MyClass
> {
> const MY_CONST = 10;
>
> ...
> }
> //
>
> Inside the class, is it 'better' to use self::MY_CONST or static::MY_CONST?
>
> I say 'better' because it works in both cases.
>
> Or is it just a personal choice.
>
> Thanks
>
> Simon
There is no "better" - it depends on what you want. There is no
difference when you have a single class like this, but there can be when
you have a derived class. self:: will always call a static function in
the base class, while static:: will call a static function in the
derived class (I've never tried it with constants, but the same may be
true).
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: const var, self:: or static:: [message #177965 is a reply to message #177963] |
Wed, 02 May 2012 15:25 |
M. Strobel
Messages: 386 Registered: December 2011
Karma: 0
|
Senior Member |
|
|
Am 02.05.2012 11:45, schrieb Simon:
> If I have something like...
>
> //
> class MyClass
> {
> const MY_CONST = 10;
>
> ...
> }
> //
>
> Inside the class, is it 'better' to use self::MY_CONST or static::MY_CONST?
>
> I say 'better' because it works in both cases.
>
> Or is it just a personal choice.
It works with static:: but it is not documented. Maybe a PHP4 compatibility thing.
I would not use it. Documented are self::$var parent::$var and Classname::$var
/Str.
|
|
|
|