--- 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