백엔드 개발 PHP 튜토리얼 PHP OOP의 함수 호출 범위 및 가시성

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

Apr 11, 2024 am 09:51 AM
php oop 범위

함수 호출의 범위 및 가시성: 범위: 함수에 액세스할 수 있는 변수의 범위(로컬/전역)를 정의합니다. 가시성: 다른 기능에서 액세스할 수 있는 기능의 범위(공개/보호/비공개)를 정의합니다. 범위는 함수가 호출될 때 적용되며 액세스할 수 있는 변수를 결정합니다. 실제 사례: 속성과 메서드의 가시성 제한을 보여주기 위해 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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

See all articles