2012-05-21 3 views
2

Возможно, существует возможность доступа к свойствам класса внутри этого класса, не используя «$ this», как в C++?

Небольшой пример:

class MyClass 
{ 
    protected $foo = 'abc'; 
    protected $bar = 'dca'; 

    public function __construct() 
    { 
     $foo = 'Hello'; 
     $bar = 'World!'; 
    } 

    public function display() 
    { 
     echo $foo . ' ' . $bar; 
    } 
} 


$MyObject = new MyClass(); 
$MyObject->display(); 

В результате, у меня есть уведомления о неопределенных переменных. Но я хотел быть уверенным - возможно ли это или нет?

+0

Не боритесь за язык. PHP использует '$ this' внутри класса для доступа к свойствам. Я часто слышал жалобы на это от разработчиков C++ и C#, но PHP - это PHP, а не C++. –

ответ

9

Нет. Это не так. В PHP вы должны использовать синтаксис $this-> для доступа к переменным экземпляра.

+1

Сохранение вашей гиперточной темы «* класс * переменные» - это не лучший термин, который вы могли бы выбрать ... Оператор разрешения области используется для доступа к * статическим * методам и объектам. Если вы попытаетесь получить доступ к нестатической переменной с помощью '::', будет вызвана фатальная ошибка. Доступ к нестационарному методу с '::' не приведет к фатальной ошибке, но вызовет предупреждение в E_STRICT – orourkek

+0

@orourkek. Я отредактировал ваш комментарий в ответе. – vascowhite

+0

@vascowhite Я его отредактировал. Если он хочет опубликовать его как часть своего собственного ответа, все в порядке, но на самом деле не очень важно иметь дополнительные детали как часть моего ответа, хотя это и правильно. orourkek, сделайте свой собственный ответ с дополнительными данными, и, возможно, собеседник должен принять его с его большей информацией (если он считает, что дополнительная информация относится к его оригинальному вопросу). –

Смежные вопросы