Scope and visibility of function calls: Scope: Defines the scope (local/global) of variables accessible to the function. Visibility: Define the scope of the function that can be accessed by other functions (public/protected/private). Scope takes effect when a function is called and determines the variables that are accessible. Practical case: Take the User class as an example to demonstrate the visibility restrictions of properties and methods.
Scope and visibility of function calls in PHP OOP
Scope
The scope of a function defines the scope of variables accessible to the function. There are two types of scopes in PHP:
Visibility
The visibility of a function defines the scope within which the function can be accessed by other functions. There are three visibility levels in PHP:
Scope of function calls
When a function is called, the role of the scope is to determine which variables can be accessed. A variable can only access variables within its scope.
The following example shows how scope affects variable access:
<?php $global_variable = "全球变量"; function myFunction() { $local_variable = "局部变量"; echo "局部变量:$local_variable<br>"; echo "全局变量:$global_variable<br>"; } myFunction(); ?>
Output:
局部变量:局部变量 全局变量:全球变量
Practical case
Consider a class used to handle user information:
<?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(); // 错误:无法访问私有属性 ?>
In this example:
$name
is a public property that can be used in Access anywhere. $email
is a protected property and can only be accessed within subclasses of class とその. $password
is a private property and can only be accessed within the class. getName()
is a public method that can be called anywhere. getEmail()
is a protected method and can only be called in subclasses of class とその. getPassword()
is a private method that can only be called in the class. The above is the detailed content of Scope and visibility of function calls in PHP OOP. For more information, please follow other related articles on the PHP Chinese website!