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 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php