Portée et visibilité des appels de fonction : Portée : Définit la portée des variables accessibles à la fonction (locale/globale). Visibilité : Définissez le périmètre de la fonction accessible par d'autres fonctions (publique/protégée/privée). La portée prend effet lorsqu'une fonction est appelée et détermine les variables accessibles. Cas pratique : Prenons l'exemple de la classe User pour démontrer les restrictions de visibilité des propriétés et des méthodes.
Portée et visibilité des appels de fonction en PHP OOP
Portée
La portée d'une fonction définit la portée des variables auxquelles la fonction peut accéder. Il existe deux types de scopes en PHP :
Visibilité
La visibilité d'une fonction définit le périmètre dans lequel une fonction est accessible par d'autres fonctions. Il existe trois niveaux de visibilité en PHP :
Portée des appels de fonction
Lorsqu'une fonction est appelée, le rôle de la portée est de déterminer à quelles variables sont accessibles. Une variable ne peut accéder qu'aux variables contenues dans sa portée.
L'exemple suivant montre comment la portée affecte l'accès aux variables :
<?php $global_variable = "全球变量"; function myFunction() { $local_variable = "局部变量"; echo "局部变量:$local_variable<br>"; echo "全局变量:$global_variable<br>"; } myFunction(); ?>
Sortie :
局部变量:局部变量 全局变量:全球变量
Exemple réel
Considérons une classe qui gère les informations utilisateur :
<?php class User { public $name; protected $email; private $password; public function __construct($name, $email, $password) { $this->name = $name; $this->email = $email; $this->password = $password; } public function getName() { return $this->name; } protected function getEmail() { return $this->email; } private function getPassword() { return $this->password; } } $user = new User("约翰·史密斯", "john.smith@example.com", "12345"); echo $user->getName(); // 约翰·史密斯 echo $user->getEmail(); // 错误:无法访问受保护属性 echo $user->getPassword(); // 错误:无法访问私有属性 ?>
Dans cet exemple :
$name
est une propriété publique et est accessible de n'importe où. $name
是一个公共属性,可以在任何地方访问。$email
是一个受保护属性,只能在类とその子类中访问。$password
是一个私有属性,只能在类中访问。getName()
是一个公共方法,可以在任何地方调用。getEmail()
是一个受保护方法,只能在类とその子类中调用。getPassword()
$email
est une propriété protégée et n'est accessible que dans les sous-classes de la classe とその. $password
est une propriété privée et n'est accessible qu'au sein de la classe. 🎜🎜getName()
est une méthode publique qui peut être appelée n'importe où. 🎜🎜getEmail()
est une méthode protégée et ne peut être appelée que dans les sous-classes de la classe とその. 🎜🎜getPassword()
est une méthode privée et ne peut être appelée que dans la classe. 🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!