PHP에서 this와 self

Olorunfemi Akinlua 2023년1월30일
  1. PHP의 OOP
  2. PHP의 thisself
PHP에서 this와 self

thisself는 객체 지향 프로그래밍(OOP)의 구성 요소 속성입니다. OOP는 데이터 연산을 수행하는 함수를 작성하는 절차적 프로그래밍이 아닌 프로그래밍 절차로서의 PHP의 구성 요소 기능입니다.

OOP를 사용하면 데이터와 기능(메서드)을 모두 가진 개체를 만들 수 있습니다.

하지만 OOP는 PHP를 포함하여 OOP를 지원하는 모든 언어로 더 빠르고 포괄적인 코딩 방법을 제공합니다. thisself와 같은 특정 기능이나 속성은 복잡할 수 있으며 OOP 사용을 재미없게 만들 수 있습니다.

이 기사에서는 thisself가 어떻게 다른지, PHP에서 사용하는 방법에 대해 설명합니다.

PHP의 OOP

OOP는 PHP 프로그램에 대한 명확한 구조를 제공하고 반복하지 말라는 대중적인 원칙을 따를 수 있도록 합니다.

클래스와 메소드는 PHP에서 OOP의 큰 부분이며 다음 코드 스니펫을 사용하여 쉽게 생성됩니다.

<?php

class Good {

    public $propertyOne;
    public $propertyTwo;
    private $propertyThree;

    function methodOne($propertyOne) {
        //
    }
}

?>

$propertyOne, $propertyTwo, $propertyThreeGood 클래스의 속성이고 methodOne()은 메서드입니다.

이 코드 조각을 사용하여 객체, OOP의 전체 목표, 클래스 및 메서드의 이유를 만들 수 있습니다.

$goodOne = new Good();

PHP의 thisself

현재 코드를 확장하기 위해 Good 클래스의 $propertyOne을 설정하는 메서드를 만들 수 있습니다.

class Good {

		//...

		function setGoodName($propertyOne) {
        $this->propertyOne = $propertyOne;
    }

    function showGoodName() {
        return $this->propertyOne;
    }

}

$this 키워드는 현재 개체를 참조하며 클래스 내의 메서드 내에서만 사용할 수 있습니다. 따라서 PHP 코드에서 $this를 사용하려면 클래스 내의 메서드 안에 있어야 합니다.

코드 조각의 경우 $this 키워드는 Good 클래스 내에서 $propertyOne을 호출할 수 있도록 현재 개체를 가리킵니다.

우리가 만든 방법을 사용합시다.

$book = new Good();
$book->setGoodName("PHP for Dummies");

echo $book->showGoodName();

코드 조각의 출력은 아래와 같습니다.

PHP for Dummies

PHP 코드를 더 확장하고 정적 저장소 Name에 대해 Good 클래스에 속성을 추가하고, 비공개로 만들고, 속성을 생성자에 반환해 보겠습니다.

class Good {

		//...
    private static $storeName = "JK Book Store";

    function __construct()
    {
        return self::$storeName;
    }

		//...
}

self 키워드는 현재 클래스를 참조하며 위의 코드 조각에서와 같이 클래스 및 정적 변수에 액세스할 수 있습니다. self 키워드는 범위 확인 연산자 ::를 사용하여 정적 클래스 멤버에 액세스하거나 참조합니다.

따라서 self$this의 큰 차이점은 self는 정적 또는 클래스 변수 또는 메서드에 액세스하고 $this는 비정적 및 개체 변수 및 메서드에 액세스한다는 것입니다.

따라서 OOP로 작업할 때 객체(클래스의 인스턴스) 내부에서 $this를 사용하고 클래스 및 정적 속성에 대해 self를 사용한다는 것을 알고 있습니다.

전체 소스 코드:

<?php

class Good {

		// properties
    public $propertyOne;
    public $propertyTwo;
    private $propertyThree;
    private static $storeName = "JK Book Store";

		// methods
    function __construct()
    {
        return self::$storeName;
    }

    function setGoodName($propertyOne) {
        $this->propertyOne = $propertyOne;
    }

    function showGoodName() {
        return $this->propertyOne;
    }

}

// creating a object
$book = new Good();
$book->setGoodName("PHP for Dummies");

echo $book->showGoodName();

?>
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

관련 문장 - PHP Class