Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #6724
| From | "J.O. Aho" <user@example.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs |
| Date | 2012-08-05 08:28 +0200 |
| Message-ID | <a86i3iFldeU1@mid.individual.net> (permalink) |
| References | <583b8426-bd2f-4d85-babb-a3c0630ef3fb@googlegroups.com> <jvjpdl$6m8$1@dont-email.me> <jvjqkl$dru$1@dont-email.me> <183a6ce7-9ac7-4b98-9bc3-68d9eb895501@googlegroups.com> |
On 05/08/12 06:08, J. Frank Parnell wrote:
> On Saturday, August 4, 2012 11:45:35 AM UTC-7, Jerry Stuckle wrote:
>> On 8/4/2012 2:24 PM, Jerry Stuckle wrote:
>
>>
>> An addition option I forgot to mention - you could also use the
>>
>> singleton pattern as M. Strobel referenced. However, if you do, you
>>
>> should always have a default parameter in the call so you can use
>>
>> something other than the singleton when you need to.
>
> Ok, I read a little on the singleton, that does seem like a good way of doing it. What I wound up doing, before you guys replied, was just $this->var = 'something' and then doing $t->var where I needed that 'something'. Which I think make sense for OO? Because it is somewhat logical for 'something' to be part of my class, in my situation. Although 'something' is a different object, eg, an api class. My class is a child class of a controller in an MVCish framework.
>
> I just found out that this works
> class test{
> function __construct(){
> $this->makevar();
> }
> function makevar(){
> global $var;
> $var = 'something';// actually, $var = new something();
> }
> }//class
>
> $t = new test;
> echo '<hr>outside class: '.$var;//works And I assume would work in a unrelated function if I globalled it in there.
>
>> always have a default parameter in the call so you can use
>> something other than the singleton when you need to
>
> not sure what this means
class test {
private $var = null;
function __construct($invalue = null) {
$this->var = $invalue;
}
}
IMHO it's better to have functions if you want to manipulate values in a
class, there are many ways to do it, but the simplest would just be:
function getVar() {
return $this->var;
}
function setVar($invalue) {
// verify that the input is of the right form
// then update the value
$this->var = $invalue;
}
--
//Aho
Back to comp.lang.php | Previous | Next — Previous in thread | Find similar | Unroll thread
Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs "J. Frank Parnell" <juglesh@gmail.com> - 2012-08-03 10:45 -0700
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs "M. Strobel" <sorry_no_mail_here@nowhere.dee> - 2012-08-04 19:18 +0200
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs Jerry Stuckle <jstucklex@attglobal.net> - 2012-08-04 14:24 -0400
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs Jerry Stuckle <jstucklex@attglobal.net> - 2012-08-04 14:45 -0400
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs "J. Frank Parnell" <juglesh@gmail.com> - 2012-08-04 21:08 -0700
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs "J.O. Aho" <user@example.net> - 2012-08-05 08:28 +0200
csiph-web