はい、できます。PHPマニュアルから引用..
プロパティまたはメソッドの可視性は、宣言の前にキーワード public、protected、または private を付けることで定義できます。public と宣言されたクラス メンバーは、どこからでもアクセスできます。保護されていると宣言されたメンバーは、クラス自体内で、継承されたクラスおよび親クラスによってのみアクセスできます。private として宣言されたメンバーには、そのメンバーを定義するクラスのみがアクセスできます。
そしてそこからの例も..
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private
編集: はい、公開メンバーと保護メンバーの可視性を変更できます。PHPマニュアルからの別の例..
/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected method, but not private
protected $protected = 'Protected2';
function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
$obj2 = new MyClass2();
echo $obj2->public; // Works
echo $obj2->private; // Undefined
echo $obj2->protected; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, Undefined
?>