Классы и объекты
PHP Manual

Свойства

Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "атрибуты" или "поля", но в рамках этой документации, мы будем называть их свойствами. Они определяются с помощью ключевых слов public, protected, или private, следуя правилам правильного описания переменных. Это описание может содержать инициализацию, но инициализация должна содержать константные значения, т.е. переменные должны быть вычислены во время компиляции и не должны зависеть от информации, полученной во время выполнения для их вычисления.

См. Область видимости для получения информации о применении public, protected, и private.

Замечание:

Для того, чтобы поддерживать обратную совместимость с PHP 4, PHP 5 по-прежнему позволяет использовать ключевое слово var при определении свойств вместо (или в дополнении к) public, protected, или private. Однако, var больше не требуется. В версиях PHP с 5.0 по 5.1.3, использование var считалось устаревшим и вызывало предупреждение E_STRICT, но с PHP 5.1.3 больше не считается устаревшим и не выдает предупреждения.

Если для определения свойства вы используете var вместо public, protected, или private, тогда PHP 5 будет определять свойство как public.

В пределах методов класса доступ к нестатическим свойствам может быть получен с помощью -> (объектного оператора): $this->property (где property - имя свойства). Доступ к статическим свойствам может быть получен с помощью :: (двойного двоеточия): self::$property. Подробнее о различиях между статическими и нестатическими свойствами смотрите в разделе "Ключевое слово Static" для получения большей информации.

Псевдопеременная $this доступна внутри любого метода класса, когда этот метод вызывается в пределах объекта. $this - это ссылка на вызываемый объект (обычно это объект, к которому принадлежит метод, но возможно и другого объекта, если метод вызван статически из контекста второго объекта).

Пример #1 Определение свойств

<?php
class SimpleClass
{
   
// Корректное определение свойства начиная с PHP 5.6.0:
   
public $var1 'hello ' 'world';
   
// Корректное определение свойства начиная с PHP 5.3.0:
   
public $var2 = <<<EOD
hello world
EOD;
   
// Корректное определение свойства начиная с PHP 5.6.0:
   
public $var3 1+2;
   
// Некорректное определение свойств:
   
public $var4 self::myStaticMethod();
   public 
$var5 $myVar;

   
// правильное определение свойств:
   
public $var6 myConstant;
   public 
$var7 = array(truefalse);

   
// Корректное определение свойства начиная с PHP 5.3.0:
   
public $var8 = <<<'EOD'
hello world
EOD;
}
?>

Замечание:

Существуют несколько интересных функций для обработки классов и объектов. Вы можете их увидеть тут Функции для классов/объектов.

Начиная с PHP 5.3.0 heredocs и nowdocs могут быть использованы в любом статическом контексте данных, включая определение свойств.

Пример #2 Пример использования nowdoc для инициализации свойств

<?php
class foo {
   
// С PHP 5.3.0
   
public $bar = <<<'EOT'
bar
EOT;
   public 
$baz = <<<EOT
baz
EOT;
}
?>

Замечание:

Поддержка Nowdoc и Heredoc была добавлена в PHP 5.3.0.


Классы и объекты
PHP Manual