函数调用的作用域和可见性:作用域:定义函数可访问变量的范围(本地/全局)。可见性:定义函数可被其他函数访问的范围(public/protected/private)。作用域在函数调用时生效,确定可访问的变量。实战案例:以 user 类为例,演示属性和方法的可见性限制。
PHP OOP 中函数调用的作用域和可见性
作用域
函数的作用域定义了该函数可访问变量的范围内。在 PHP 中有两种作用域:
- 本地作用域:在函数内部定义的变量只在该函数内部可见。
- 全局作用域:在函数外部定义的变量在整个脚本中都可以访问。
可见性
函数的可见性定义了函数可以被其他函数访问的范围。在 PHP 中有三个可见性级别:
- public:函数可以在任何地方访问。
- protected:函数只能在该类とその子类中访问。
- private:函数只能在该类中访问。
函数调用的作用域
当函数被调用时,作用域的作用是确定可以访问哪些变量。变量只能访问在其作用域内的变量。
以下示例展示了作用域如何影响变量的访问:
<?php $global_variable = "全球变量"; function myFunction() { $local_variable = "局部变量"; echo "局部变量:$local_variable<br>"; echo "全局变量:$global_variable<br>"; } myFunction(); ?>
登录后复制
输出:
局部变量:局部变量 全局变量:全球变量
登录后复制
实战案例
考虑一个用于处理用户信息的类:
<?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(); // 错误:无法访问私有属性 ?>
登录后复制
在这个示例中:
-
$name
是一个公共属性,可以在任何地方访问。 -
$email
是一个受保护属性,只能在类とその子类中访问。 -
$password
是一个私有属性,只能在类中访问。 -
getName()
是一个公共方法,可以在任何地方调用。 -
getEmail()
是一个受保护方法,只能在类とその子类中调用。 -
getPassword()
是一个私有方法,只能在类中调用。
以上就是PHP OOP 中函数调用的作用域和可见性的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:叮当,转转请注明出处:https://www.dingdanghao.com/article/334156.html