great!, thanks for the detailed answer. vk. p.s. I hope following URL will be helpfull to php oop beginners.. http://www.zend.com/zend/tut/class-intro.php On Thu, 6 Jan 2005 08:57:48 -0800 (PST), Richard Lynch <ceo@xxxxxxxxx> wrote: > kalinga wrote: > > Dear all, > > I recently started PHP OOP and I'm bit confused about best and the most > > efficient methods when 'declaring a class' and 'calling function', > > could somebody > > explain me with following sample code, it would be great.. > > > > thanks.. > > > > class classLdap{ > > > > $rslt = $_POST['rslt']; > > > > function ldapConnect($rslt){ > > .... > > ...... > > return $rslt; > > }// end function ldapConnect > > > > function ldapAdd($rslt){ > > // i want to call ldapConnect($rslt) here what is the best > > method. > > > > $rslt = classLdap::ldapConnect($rslt); > > This is generally done when you: > A) Don't have an instance of a classLdap to work with. > B) Calling ldapConnect() on the instance you have would cause side effects > to the instance (or other objects) that you don't want to happen in some > unusual case. > > A. does not apply here, as you are in the method of the class, so you have > '$this' which is the instance you have created. > > B. might or might not apply, but it all depends on YOUR application and > what you want it to do... > > > //or > > //(curently i'm doing this way, it's to lengthy) > > > > $new_classLdap = new classLdap; > > $rslt = $new_classLdap->ldapConnect($rslt); > > This can also be used to avoid altering the existing object you have > created -- though it's a bit more expensive than the previous way of doing > that. > > There might be some super RARE case where you really really need an object > instantiated to have it be valid, and you would *HAVE* to do the above. > > But that would be super rare, so this is probably not what you want. > > > //or > > > > $rslt = $this->ldapConnect($rslt); > > > works if you just want to affect *THIS* same object that you have -- In > other words, use $this-> when you are thinking about 'this' object that > you have created and want it to change itself in some way. Kind of like a > "self-help" sort of deal. > > You might not want to assign the result back into $rslt -- depending on > what $rslt actually *IS* which I don't know, since you have it coming in > from $_POST... > > Which you also need to do some checking on, since it's NOT SAFE to accept > $_POST data -- *any* Bad Guy out there could send any nasty thing they > want to your script through $_POST. > > > }// end function ldapAdd > > > > }// end class > > Based on what you are doing, and your experience level, I'd say stick with > the last answer: > > $this->ldapConnect($rslt) > > unless you have a very specific need to use the others. > > Just keep it in the back of your mind that there *ARE* alternatives, so > that, years from now, when you run into one of those weird-o cases where > you need the others, you'll remember that they exist as alternatives. > > -- > Like Music? > http://l-i-e.com/artists.htm > > -- vk. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php