PHP5を試してみる - Private/Protectedなメンバー変数
サンプルは、EXPERIENCEで実際に確認できるようにしてますので、気になる方は見てみてください。
PHP4までのクラスは全てpublic扱い(外部関数・クラスから参照可能)でしたが、PHP5からJavaのようなprivate・protectedといった修飾子が使えるようになりますので、ようやく本当の意味での「カプセル化」が出来そうです。
●01.PrivateAndProtectedMembers.php5
<?php
echo phpversion();
?>
<hr>
<?php
class MyClass {
private $Hello = "Hello, World!\n";
protected $Bar = "Hello, Bar!\n";
protected $Foo = "Hello, Foo!\n";
function printHello() {
print "MyClass::printHello() " . $this->Hello;
print "MyClass::printHello() " . $this->Bar;
print "MyClass::printHello() " . $this->Foo;
}
}
class MyClass2 extends MyClass {
protected $Foo;
function printHello() {
MyClass::printHello();
print "MyClass2::printHello() " . $this->Hello;
print "MyClass2::printHello() " . $this->Bar;
print "MyClass2::printHello() " . $this->Foo;
}
}
$obj = new MyClass();
echo "<pre>";
$obj->printHello(); ?>
<hr>
<?php
$obj = new MyClass2();
$obj->printHello();
echo "</pre>";
?>
<hr>
<?php
show_source($_SERVER["SCRIPT_FILENAME"]);
?>
|