FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs [message #178796 is a reply to message #178795] Sun, 05 August 2012 06:28 Go to previous message
J.O. Aho is currently offline  J.O. Aho
Messages: 194
Registered: September 2010
Karma:
Senior Member
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
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: str_replace, replace array with string AND array
Next Topic: Excellent new opportunity for developers to monetize more with their Apps.
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Fri Sep 20 13:36:18 GMT 2024

Total time taken to generate the page: 0.05760 seconds