Re: call a function within the same class

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux