ID:               30423
 User updated by:  auroraeosrose at hotmail dot com
 Reported By:      auroraeosrose at hotmail dot com
-Status:           No Feedback
+Status:           Open
 Bug Type:         Feature/Change Request
 Operating System: *
 PHP Version:      5.*
 Assigned To:      helly
 New Comment:

Then this is a won't fix...sigh...wanna set it to that?


Previous Comments:
------------------------------------------------------------------------

[2004-10-24 01:00:02] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------

[2004-10-16 19:44:08] [EMAIL PROTECTED]

If i get you right you want to know to which class the function call
was up to? If that's the answer i can tell you that we won't fix it
because it would require a new global executor variable.

------------------------------------------------------------------------

[2004-10-15 20:18:15] auroraeosrose at hotmail dot com

I don't think you looked closely enough at the example code to
understand what I was asking for.  Notice the method I'm calling is the
parent, NOT the child.  I need the CHILD name not the PARENT.

I'm extending a class(an abstract one, not that it matters), but need
to be able to get the name of the child class called in a method in the
parent(abstract) class, because any number of classes could extend the
abstract class.  

There's a trick to using get_class() to find out this information, if I
call a method normally.  I can do get_class($this) inside the method. 
HOWEVER, you can't DO that inside a static method, for obvious reasons
there's no $this.  I need a way to do a get_class($this) equivalent in
a static method!! - something like get_class(self).  Calling
get_parent_class IN the parent class does me no good whatsoever- you
just get false all the time.  I already KNOW the parent, I know how to
get the parent, but I need the child!

(Actually, the ideal thing would be to fix get_class() so it returns
the name of the actual class called, right now it returns whatever
class the method happens to be in, and let __CLASS__ be the name of the
class the method is actually in.)

------------------------------------------------------------------------

[2004-10-14 23:19:53] [EMAIL PROTECTED]

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

Just await 5.0.3, 5.1.0 or the next snaps build....

------------------------------------------------------------------------

[2004-10-14 14:58:55] auroraeosrose at hotmail dot com

strangely enough, in php 5.0.x I can't get
get_parent_class(get_class()) or get_parent_class(__CLASS__) to work
anywhere - and even though I threw on the lastest snap  of 5.1
get_parent_class() doesn't work yet, but it just might not be compiled
in yet...I just get false back

What I'm looking for is for whoami1 to give me the get_class($this)
answer from whoami - the actual class called

class test {
   function whoami() {
     echo 'This is class test'."\n";
     echo 'Value of __CLASS__ is '.__CLASS__."\n";
     echo 'Value of get_class() is '.get_class()."\n";
     echo 'Value of get_class($this) is '.get_class($this)."\n";
     echo 'Value of get_parent_class(__CLASS__) is
'.get_parent_class(__CLASS__)."\n";
     echo 'Value of get_parent_class(get_class()) is
'.get_parent_class(get_class())."\n\n";
   }
    static function whoami1() {
     echo 'This is class test'."\n";
     echo 'Value of __CLASS__ is '.__CLASS__."\n";
     echo 'Value of get_class() is '.get_class()."\n";
     echo 'Value of get_parent_class(__CLASS__) is
'.get_parent_class(__CLASS__)."\n";
     echo 'Value of get_parent_class(get_class()) is
'.get_parent_class(get_class())."\n\n";
   }
  }
  class test2 extends test {}
  $test=new test;
  $test->whoami();
  $test2=new test2;
  $test2->whoami();
  test::whoami1();
  test2::whoami1();

Results with php 5.0.*

This is class test
Value of __CLASS__ is test
Value of get_class() is test
Value of get_class($this) is test
Value of get_parent_class(__CLASS__) is 
Value of get_parent_class(get_class()) is 

This is class test
Value of __CLASS__ is test
Value of get_class() is test 
Value of get_class($this) is test2
 (note: -> this is what I want, only statically)
Value of get_parent_class(__CLASS__) is 
Value of get_parent_class(get_class()) is 

This is class test
Value of __CLASS__ is test
Value of get_class() is test
Value of get_parent_class(__CLASS__) is 
Value of get_parent_class(get_class()) is 

This is class test
Value of __CLASS__ is test
Value of get_class() is test 
Value of get_parent_class(__CLASS__) is 
Value of get_parent_class(get_class()) is

So I guess the long and short of it is it still doesn't work - I know
I'm being a pain :)

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/30423

-- 
Edit this bug report at http://bugs.php.net/?id=30423&edit=1

Reply via email to