La définition de variable d'une classe dans php5 oop suit un contrôle d'accès, qui est :
public signifie global, et peut être consulté par les sous-classes à l'intérieur et à l'extérieur de la classe ;
private signifie private, et ne peut être utilisé qu'au sein de cette classe
protected signifie protected ; uniquement cette classe ou Accessible dans les sous-classes ou les classes parentes
<?php ;
classe ClasseBase {
public $public = 'public';
privé $privé = 'privé';
protégé $ protégé = 'protégé';
fonction __construct(){
}
fonction print_var(){
print $this->public;echo '<br />';
print $this->private; echo '<br />';
print $this->protected; echo '<br />';
}
}
class Subclass extends BaseClass {
// public $public = 'public2';
protégé $protected ='protected2';
fonction __construct(){
echo $this->protected;//Peut être consulté, car la classe est définie comme protégée, elle peut donc être dans cette classe ou sous-classe, et la valeur peut être répétée dans les sous-classes
echo '<br />';
echo $this->private;//erreur car il est privé et ne peut être utilisé que dans la classe de base dans laquelle il est défini.
}
}
$obj1 = new BaseClass();
$obj1->print_var();
//echo $obj1->protected;//error Parce qu'il est protégé, il ne peut être appelé qu'au sein de cette classe ou dans les sous-classes et les classes parentes.
//echo $obj1->private;//erreur privée comme ci-dessus, ne peut être appelé que dans cette classe
echo $obj1->public;
echo "<hr />" ;
$obj2 = nouvelle sous-classe();
echo '<br />';
echo $obj2->public;echo '<br />';
echo $obj2->protégé ;
//echo $obj2->privé;//erreur
//echo $obj2->protégé ;
?>