>  기사  >  백엔드 개발  >  PHP OOP의 함수 호출 범위 및 가시성

PHP OOP의 함수 호출 범위 및 가시성

PHPz
PHPz원래의
2024-04-11 09:51:011006검색

함수 호출의 범위 및 가시성: 범위: 함수에 액세스할 수 있는 변수의 범위(로컬/전역)를 정의합니다. 가시성: 다른 기능에서 액세스할 수 있는 기능의 범위(공개/보호/비공개)를 정의합니다. 범위는 함수가 호출될 때 적용되며 액세스할 수 있는 변수를 결정합니다. 실제 사례: 속성과 메서드의 가시성 제한을 보여주기 위해 User 클래스를 예로 들어 보겠습니다.

PHP OOP 中函数调用的作用域和可见性

PHP OOP에서 함수 호출의 범위 및 가시성

범위

함수의 범위는 함수가 액세스할 수 있는 변수의 범위를 정의합니다. PHP에는 두 가지 유형의 범위가 있습니다.

  • 로컬 범위: 함수 내부에 정의된 변수는 해당 함수 내부에서만 볼 수 있습니다.
  • 전역 범위: 함수 외부에 정의된 변수는 스크립트 전체에서 액세스할 수 있습니다.

Visibility

함수의 가시성은 다른 함수가 해당 함수에 액세스할 수 있는 범위를 정의합니다. PHP에는 세 가지 가시성 수준이 있습니다.

  • 공개: 함수는 어디에서나 액세스할 수 있습니다.
  • 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은 공개 속성이며 어디에서나 액세스할 수 있습니다. $name 是一个公共属性,可以在任何地方访问。
  • $email 是一个受保护属性,只能在类とその子类中访问。
  • $password 是一个私有属性,只能在类中访问。
  • getName() 是一个公共方法,可以在任何地方调用。
  • getEmail() 是一个受保护方法,只能在类とその子类中调用。
  • getPassword()
  • $email은 보호된 속성이며 とその 클래스의 하위 클래스에서만 액세스할 수 있습니다.
🎜$password는 개인 속성이며 클래스 내에서만 액세스할 수 있습니다. 🎜🎜getName()은 어디에서나 호출할 수 있는 공개 메서드입니다. 🎜🎜getEmail()은 보호된 메서드이며 とその 클래스의 하위 클래스에서만 호출할 수 있습니다. 🎜🎜getPassword()는 비공개 메서드이며 클래스에서만 호출할 수 있습니다. 🎜🎜

위 내용은 PHP OOP의 함수 호출 범위 및 가시성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.