Andi Gutmans wrote: > I haven't quite understood what is wrong with instantiating the object.
i think its faster to just pull out the name (single value) from a database than the whole object (row or even rows from different tables) > After all, it most probably reflects some external data (or the name > wouldn't mean anything). Not creating the object itself won't save you > anything. Anyway, you can still do Foo::getName($object_id), if that > $object_id corresponds to some external resource like DB row. yes, but if someone calls Foo::getName() from inside an object who has also the propertie $foo->name this function would return this properties, but it should raise an user-error that there is missing a parameter of course, there is always a workaround - but why is $this available inside a statically called method? > Then again, I probably misunderstood you because I don't quite > understand the problem to begin with :) the main-question/problem is: "why is $this available inside a statically called method?" (PHP 4) and in PHP 5, the other point was, why should it not be possible to call one method statically and not statically? example, returning wrong $name: <?php // PHP 4 class Foo { var $name = 'name_of_foo'; function getName() { if ( isset( $this ) ) { return 'not static: ' . $this->name; } return 'static'; } function getParentName() { return Foo::getName(); } } // returns 'static' echo Foo::getName(); // returns 'not static' but should be 'static' $foo = new Foo; echo $foo->getParentName(); ?> > Andi > > At 08:59 AM 7/22/2005 +0200, Sebastian Mendel wrote: >> Sean Coates wrote: >> >> i know this hack, but it does not work, if the statically called >> method >> >> is from the same class as the calling object >> > >> > Good point. Sorry for not noticing. >> > ... I have no idea WHY someone would want to do this.. that said, I >> > don't know of a way to do it, either. >> >> a function who returns a name of an object, say its name is >> >> $object->getName(); >> >> this needs that the object exists and loaded >> >> how about if i need a name for object not loaded? >> >> Class::getName( $object_id ); >> >> >> there is really no need to load/create the whole object if i only need >> the name, so doing >> >> $object = new Class( $object_id ); >> $object->getName(); >> >> would be a waste of system-resources >> >> f.e. the same applies to any other properties of an object stored in a >> DB. >> >> but why should i choose for the same function two different method-names? >> >> f.e. >> >> Class::getName() >> static Class::staticGetName() >> >> ?? >> >> this doesnt makes sence to me. >> >> pls, give me a hint if i had overseen something. -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php