PHP

[PHP] 접근지정자 - Public, Protected, Private

BeomBe 2023. 11. 30. 16:30
반응형

1. public

- 해당 속성/메서드를 개체의 다른 클래스 및 인스턴스 어디에서나 사용할 수 있도록 합니다.

 

<?php

class Greeting
{
    public $greeting='Hello World';  // A public variable
}

class Welcome extends Greeting // Inherited class
{
    function displayGreeting()
    {
        return $this->greeting; // public 변수는 상속된 클래스에서 사용가능
    }

}

// 상속된 클래스에서 Publish 변수 받기
$welcome = new Welcome;
echo $welcome->displayGreeting(); // 'Hello World'

// Public 변수는 클래스 외부에서도 사용 가능
$outsideGreeting = new Greeting;
echo $outsideGreeting->greeting; // Prints 'Hello World'

?>

 

2.protected 

- 부모 클래스를 포함하여 현재 클래스를 확장하는 모든 클래스에서 속성/메서드를 표시하려는 경우

<?php

class Greeting
{
    protected $greeting='Hello World';
}

class Welcome extends Greeting // Inherited class
{
    function displayGreeting()
    {
        return $this->greeting; // protected 변수는 상속된 클래스에서 사용가능
    }

}

// 상속된 클래스에서 protected 변수 받기
$welcome = new Welcome;
echo $welcome->displayGreeting(); // 'Hello World'

$outsideGreeting = new Greeting;
echo $outsideGreeting->greeting; // Fatal error

?>

 

3. private 

- 속성/메서드가 자체 클래스에서만 표시되도록 하려는 경우

<?php

class Greeting
{
    private $greeting='Hello World';
}

class Welcome extends Greeting
{
    function displayGreeting()
    {
        return $this->greeting;
    }

}

$welcome = new Welcome;
echo $welcome->displayGreeting(); // Undefined

$outsideGreeting = new Greeting;
echo $outsideGreeting->greeting; // Fatal error

?>

 

 

반응형