--- Bertrand Mansion <[EMAIL PROTECTED]> wrote:
> <[EMAIL PROTECTED]> wrote :
> 
> > 
> > --- Bertrand Mansion <[EMAIL PROTECTED]> wrote:
> >> <[EMAIL PROTECTED]> wrote?:
> >> 
> >>> $classname::method() === call_user_func(array($classname,'method'));
> >> 
> >> No. $classname::method() is illegal and is in no case === to
> >> call_user_func(array($classname,'method')) as you state it.
> >> 
> >> Class foo {
> >>     function bar() {
> >>         echo $this->param;
> >>     }
> >> }
> >> 
> >> Class MyObject {
> >>     var $param;
> >>     function MyObject($param) {
> >>         $this->param = $param;
> >>         foo::bar();
> >>     }
> >> }
> >> 
> >> $obj = new MyObject('out of this');
> >> 
> >> will print 'from MyObject'.
> > 
> > 
> > This SHOULDN'T print 'out of this', This seems like a bug, and you
> SHOULDN'T
> > depend on this functionality. The scope of $this inside class foo method
> bar,
> > Should be to foo::bar NOT MyObject::MyObject. Which if my memory serves me
> > right $this inside a static method will just be the string of the current
> > class?
> 
> Hi Brad,
> 
> Are you sure about that ? The manual states that this is the normal
> behaviour which I find very handy and useful in many cases. I see a lot of
> possibilities with this feature, for instance a way to develop some kind of
> plug-ins for existing classes without having to extend them.

 Where in the manual do you see this? 

> 
> This can probably lead to some dangerous code but this goes far beyond my
> knowledge.

 besides dangerous code if you find yourself doing this, you probally aren't
designing it correct. Your creating a static method of a class to access local
properties of another class thru the use of $this. If you want a way to access
member variables from a class in a static method, pass the object refrence into
the method.

 Class foo {
     function bar($obj) {
         echo $obj->param;
         /* $this should referr to the foo refrence, not another class refrence
*/
     }
 }
 
 Class MyObject {
     var $param;
     function MyObject($param) {
         $this->param = $param;
         foo::bar($this);
    }
}

 - Brad



__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to