Видимость (доступность) переменной (свойства) или метода класса может быть определена путем добавления одного из префиксов public, protected или private.

Члены объявление как public доступны отовсюду: из самого класса, в котором делается объявление члена, из классов-наследников, вне классов.

Члены объявление как protected доступны из самого класса, в котором делается объявление члена, и классов-наследников.

Члены объявление как private доступны исключительно из самого класса, в котором делается объявление члена.

Переменные, используемые классом, будем называть членами класса.

Итак. Члены класса могут быть объявлены как public (публичный), protected (защищенный) или private (частный).

<?php
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';

function printHello()
{
echo $this->public,'<br/>';
echo $this->protected,'<br/>';
echo $this->private,'<br/>';
}
}

$obj = new MyClass();
echo $obj->public,'<br/>'; // Работает
//echo $obj->protected; // Выдаст сообщение Fatal Error
//echo $obj->private; // Выдаст сообщение Fatal Error
$obj->printHello(); // Выведет значение всех переменных
echo "----------------</br>";

class MyClass2 extends MyClass
{
// Можно переопределить переменные public и protected method, но не private
protected $protected = 'Protected2';

function printHello()
{
echo $this->public,'<br/>';
echo $this->protected,'<br/>';
//echo $this->private,'<br/>'; // Выдаст сообщение Undefined property
}
}

$obj2 = new MyClass2();
echo $obj2->public,'<br/>'; // Works
//echo $obj2->private; // Выдаст сообщение Undefined property
//echo $obj2->protected; // Выдаст сообщение Fatal Error
$obj2->printHello(); // Shows Public, Protected2, Undefined

?>

Добавить комментарий


Защитный код
Обновить