note 92239 deleted from language.oop5.visibility by danbrown
| From: | danbrown@php.net | Date: | Wed, 15 Jul 2009 12:14:11 +0000 |
| Subject: | note 92239 deleted from language.oop5.visibility by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-158336@lists.php.net to get a copy of this message | ||
Note Submitter: singhkumardinesh at gmail dot com
----
<?php
/**
* Define MyClass
*/
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
/**
* 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
?>
echo $obj2->private; // Undefined
here the also fatal error because it is private var it also a undefine but the correct error is
fatal error
echo $obj2->protected; // Fatal Error