Class

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

Переменная $this в объектно-ориентированном языке

<?php
class A
{
function foo()
{
if (isset($this)) {
echo '$this определена (';
echo get_class($this);
echo ")\n";
} else {
echo "\$this не определена.\n";
}
}
}

class B
{
function bar()
{
A::foo();
}
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

Результат выполнения данного примера:

$this определена (a)
$this не определена.$this определена (b)
$this не определена.

Простое определение класса

<?php
class SimpleClass
{
// member declaration
public $var = 'a default value';

// method declaration
public function displayVar() {
echo $this->var;
}
}
?>

Дефолтное значение должно быть постоянным выражением, не (для примера) переменной, членом класса или вызовом функции.

Дефолтное значение члена класса

<?php
class SimpleClass
{
// неправильная декларация члена:
public $var1 = 'hello '.'world';
public $var2 = <<hello worldEOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;

// правильное объявление члена
public $var6 = myConstant;
public $var7 = self::classConstant;
public $var8 = array(true, false);


}
?>