PHP에서 this와 self
this
와 self
는 객체 지향 프로그래밍(OOP)의 구성 요소 속성입니다. OOP는 데이터 연산을 수행하는 함수를 작성하는 절차적 프로그래밍이 아닌 프로그래밍 절차로서의 PHP의 구성 요소 기능입니다.
OOP를 사용하면 데이터와 기능(메서드)을 모두 가진 개체를 만들 수 있습니다.
하지만 OOP는 PHP를 포함하여 OOP를 지원하는 모든 언어로 더 빠르고 포괄적인 코딩 방법을 제공합니다. this
및 self
와 같은 특정 기능이나 속성은 복잡할 수 있으며 OOP 사용을 재미없게 만들 수 있습니다.
이 기사에서는 this
와 self
가 어떻게 다른지, PHP에서 사용하는 방법에 대해 설명합니다.
PHP의 OOP
OOP는 PHP 프로그램에 대한 명확한 구조를 제공하고 반복하지 말라
는 대중적인 원칙을 따를 수 있도록 합니다.
클래스와 메소드는 PHP에서 OOP의 큰 부분이며 다음 코드 스니펫을 사용하여 쉽게 생성됩니다.
<?php
class Good {
public $propertyOne;
public $propertyTwo;
private $propertyThree;
function methodOne($propertyOne) {
//
}
}
?>
$propertyOne
, $propertyTwo
, $propertyThree
는 Good
클래스의 속성이고 methodOne()
은 메서드입니다.
이 코드 조각을 사용하여 객체, OOP의 전체 목표, 클래스 및 메서드의 이유를 만들 수 있습니다.
$goodOne = new Good();
PHP의 this
와 self
현재 코드를 확장하기 위해 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 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