eje211 eje211 - 1 month ago 5x
PHP Question

Can a PHP object instance know its name?

If I have code like this:

class Person {

function about() {
return /* Can I get the person's name? */;

$John = new Person();
$Peter = new Person();

print $John->about(); // Print "John".
print $Peter->about(); // Print "Peter".

Is it possible to print the person's name, stored as the variable name, from the method?

As it's not standard procedure, I'm guessing it's a bad idea.

I've looked it up and I can't find anything about it.


No. Objects can have multiple names, or no names. What would happen here:

$John = new Person();
$Richie = $John;      // $John and $Richie now both refer to the same object.
print $Richie->about();

or here:

function f($person)
    print $person->about();

f(new Person());

If the objects need to know their own names, then they need to explicitly store their names as member variables (like $age and $height).