PHP - доступ к имени объекта внутри функции класса - PullRequest
1 голос
/ 30 ноября 2011

Первый вопрос здесь.Извините, пожалуйста, ошибки noob.

Я хочу иметь возможность ссылаться на имя объекта внутри функции.

Давайте представим, что функция в классе - display_report ().Я вызываю функцию для объекта $ jan2011 с помощью кода:

$jan2011->display_report(); 

Оказавшись внутри функции display_report (), я могу ссылаться на переменные объекта как $ this-> date или $ this-> title,где $ date и $ title - переменные внутри класса.

Но как я могу определить в функции display_report (), что объект, с которым он был вызван, это $ jan2011?Просто использование $ не представляется допустимым.

Я пытаюсь создать переменную примерно так:

 $name = "W_".$this."_7";

Я надеюсь, что $ nameустановите значение W_jan2011_7 (или, может быть, W_ $ jan2011_7), но это не работает.Спасибо.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011

Вы не можете получить доступ к справочному имени изнутри объекта, это два совершенно разных контекста.Используемый вами подход не является OO-совместимым, попробуйте вместо этого поместить атрибут (например, «name») в класс отчета и переопределить метод __toString для вывода строкового представления объекта (больше информации о __toString есть в php docs).).

0 голосов
/ 30 ноября 2011

В общем, вы не можете; бывают ситуации, когда переменная даже не имеет имени. Представьте себе:

function foo()
{
    ...
    return new Report();
}

foo()->display_report();

Я бы предложил добавить поле name в ваш класс.

...