Jeśli mam kod jak poniżej:Czy instancja obiektu PHP może znać swoją nazwę?
class Person {
$age;
$height;
$more_stuff_about_the_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".
to możliwe, aby wydrukować imię i nazwisko osoby, przechowywane jako nazwa zmiennej, od metody?
Ponieważ nie jest to standardowa procedura, domyślam się, że to zły pomysł.
Sprawdziłem i nie mogę nic na ten temat znaleźć.
byłoby przydatne w niektórych przypadkach, ale boję się tego nie jest możliwe. Może to ze zmiennymi zmiennymi? – fabrik
Czy "Osoba" nie powinna mieć zmiennej instancji '$ name'? Co jeśli masz obiekty w tablicy typu '$ p = array (new Person(), new Person())'? –
Może być strasznie kludgy sposób używając 'debug_backtrace()' (która da ci linię, z której wywołano wywołanie 'about()') i tokenizera (który może dać ci odniesienie do zmiennej, z której wywołano wywołanie), ale to naprawdę nie nadaje się do użytku produkcyjnego –