Skip to content

Instantly share code, notes, and snippets.

@ronan-gloo
Last active August 29, 2015 13:56
Show Gist options
  • Save ronan-gloo/9291902 to your computer and use it in GitHub Desktop.
Save ronan-gloo/9291902 to your computer and use it in GitHub Desktop.
Scope varaible + méthode
<?php
class User {
private $password;
public function __construct($password)
{
$this->password = $password;
}
public function getPassword()
{
return $this->password;
}
public function syncPassword(User $user)
{
$user->password = $this->password;
}
}
class Admin extends User {}
$user = new User('user-pass');
$admin = new Admin('admin-pass');
$admin->syncPassword($user);
echo $user->getPassword(); // 'admin-pass'
@ronan-gloo
Copy link
Author

ré-implémenter syncPassword() dans la classe Admin générera l'erreur espérée lié à la visibilité.
Le contexte est défini à partir de la classe ou la méthode est déclarée, mais l'objet héritant est quand meme en mesure de modifier une propriété privée d'une instance de classe inclue dans son héritage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment