|
Posted by Satyam on 04/23/05 12:43
I was looking for formal documentation because I am doing a pre-processor
for some PHP extensions and wanted to know the right and formal description
for it. Nevertheless, I think your examples below cover most cases, a help
much appreciated. Thanks
Satyam
"Jochem Maas" <jochem@iamjochem.com> wrote in message
news:42694092.6000405@iamjochem.com...
> Richard Davey wrote:
>> Hello Satyam,
>>
>> Friday, April 22, 2005, 3:59:38 PM, you wrote:
>>
>> S> I've been going through the manual and haven't found 'var'
>> S> documented anywhere, as far as I found, it is just used, and that's
>> S> it. It seems it first appears when it talks about Classes, and it
>> S> is just used in the examples as if everyone knew what var is
>> S> supposed to do.
>>
>> It's a "constant initializer" - which is both an accurate and
>> misleading title at the same time :) It will initialise a variable to
>> be constant through-out your entire class (meaning any method can
>> access it) but unlike true PHP constants (those created with define)
>> the value of the variable can be manipulated from just about anywhere.
>
>
> indeed in php you can do the following instead:
>
> <?
>
> error_reporting( E_ALL & E_STRICT );
> class Test
> {
> // this first var (commented out) should (I thought) act as if defined
> // 'public' - it doesn't given a parse error with php -l, but does
> when run.
> // I haven't run into this problem in 1.5 years of writing php5...
> // I must be having a brain freeze :-/
> //$myVar;
>
> // publically accessible instances variables
> public $myVar1; // not initialized with a value
> public $myVar2 = "2"; // initialized with a value
>
> // an instance variable thats only available
> // from within _all_ methods of this object.
> // .. methods could be defined in subclasses or parent-classes
> protected $myVar3 = "3";
>
> // an instance variable that is only available to the
> // methods defined in _this_ class
> private $myVar4 = "4";
>
> // a variable with class scope (all instances see the same value),
> // publically accessible
> static $myVar5 = "5";
> static public $myVar6 = "6";
>
> // a variable with class scope (all instances see the same value),
> // thats only available from within _all_ methods of this object.
> static protected $myVar7 = "7";
>
> // a variable with class scope (all instances see the same value),
> // thats only available from methods defined in _this_ class
> static private $myVar8 = "8";
>
> public function get4() { return $this->myVar4; }
> public function get8() { return self::$myVar8; }
> }
>
> // basic usage examples:
>
> var_dump( ($t = new Test), $t->myVar2, $t->get4(), Test::$myVar6,
> $t->get8() );
>
> ?>
>
> I can thoroughly recommend php5's much improved object model,
> try other variations of calls to the defined 'myVar's, also try doing
> with sublcasses, see what does/doesn't work, have fun :-)
>
>>
>> It is of course PHP4 only and is depreciated in PHP5.
>>
>> Best regards,
>>
>> Richard Davey
[Back to original message]
|