Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #6724

Re: Globalizing vars in class methods doesnt seem to work, var disappears after global, var is inaccessible in other methods/funcs

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>

Show all headers | View raw


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


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