note 40998 added to language.oop
| From: | danielc@php.net | Date: | Thu, 25 Mar 2004 23:50:33 +0000 |
| Subject: | note 40998 added to language.oop | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-67182@lists.php.net to get a copy of this message | ||
PHP 5 has introduced access control for object properties and methods. Here is a demonstration of
how the access levels work.
class a {
public function pub($from) {
echo "pub from $from\n";
}
protected function pro($from) {
echo "pro from $from\n";
}
private function pvt($from) {
echo "pvt from $from\n";
}
public function testa($from) {
echo "vvvv\n";
echo "testa from $from...\n";
$this->pub("testa via $from");
$this->pro("testa via $from");
$this->pvt("testa via $from");
echo "^^^^\n";
}
}
class b extends a {
public function testb($from) {
echo "v-v-v-v\n";
echo "testb from $from...\n";
$this->pub("testb via $from");
$this->pro("testb via $from");
// $this->pvt("testb via $from"); // Fatal error...
$this->testa("testb via $from");
echo "^-^-^-^\n";
}
}
$a = new a;
$a->pub('direct');
// $a->pro('direct'); // Fatal error...
// $a->pvt('direct'); // Fatal error...
$a->testa('direct');
$b = new b;
$b->testb('direct');
/*
* OUTPUT
*
* pub from direct
* vvvv
* testa from direct...
* pub from testa via direct
* pro from testa via direct
* pvt from testa via direct
* ^^^^
* v-v-v-v
* testb from direct...
* pub from testb via direct
* pro from testb via direct
* vvvv
* testa from testb via direct...
* pub from testa via testb via direct
* pro from testa via testb via direct
* pvt from testa via testb via direct
* ^^^^
* ^-^-^-^
*/
----
Manual Page -- http://www.php.net/manual/en/language.oop.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+40998
Delete -- http://master.php.net/manage/user-notes.php?action=delete+40998&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+40998&report=yes
Search -- http://master.php.net/manage/user-notes.php