⊗ppOpBsInr 1 of 107 menu

PHP에서 OOP 입문

지금부터 PHP에서 OOP를 공부해보겠습니다. 일상생활의 예를 살펴본 다음, 이를 PHP로 옮겨 보겠습니다.

예시로 자동차를 들어보겠습니다. 자동차에는 바퀴, 색상, 차체 유형, 엔진 배기량 등이 있습니다. 또한 운전자는 자동차에 명령을 내릴 수 있습니다: 가라, 멈춰라, 오른쪽으로 돌아라, 왼쪽으로 돌아라 등등.

공통된 속성(모두 바퀴가 있고 모두 명령을 받을 수 있음)을 가진 자동차의 클래스가 존재한다고 말할 수 있습니다.

길에 서 있는 특정한 자동차는 이 클래스의 대표, 또는 다른 말로 이 클래스의 객체입니다. 이 클래스의 모든 객체는 속성(property): 바퀴 수, 색상, 차체 유형과 메서드(method): 가라, 멈춰라, 오른쪽으로 돌아라, 왼쪽으로 돌아라를 가지고 있습니다.

다시 말해, 클래스 자체는 공장에서 자동차를 만드는 데 사용되는 청사진입니다. 객체는 이 청사진에 따라 만들어진 실제 자동차입니다.

PHP에서 클래스는 class 키워드와 그 뒤에 오는 클래스 이름을 사용하여 생성됩니다. Car 클래스를 만들어 봅시다:

<?php class Car { // 여기에 코드, 즉 PHP 자동차 청사진이 들어갑니다. } ?>

이제 우리의 청사진에, 이 청사진에 따라 만들어진 모든 자동차는 색상과 연료량을 위한 속성을 가질 것이라고 명시해 보겠습니다.

이를 위해 클래스 내부에 $color 속성과 $fuel 속성을 작성합니다:

<?php class Car { // 속성을 정의합니다 (본질적으로 클래스의 변수입니다): public $color; // 자동차 색상 public $fuel; // 연료량 } ?>

이제 우리 클래스의 메서드를 만들어 봅시다. PHP에서 메서드는 일반 함수와 마찬가지로 function 키워드를 사용하여 선언되며, 그 앞에 public 키워드가 붙습니다.

위에서 언급한 대로, 우리 자동차는 갈 수 있고, 방향을 바꿀 수 있고, 멈출 수 있습니다. 우리 클래스에 해당 메서드를 만들어 보겠습니다:

<?php class Car { public $color; // 자동차 색상 public $fuel; // 연료량 // 가라 명령: public function go() { // 어떤 PHP 코드 } // 방향을 바꾸라 명령: public function turn() { // 어떤 PHP 코드 } // 멈추라 명령: public function stop() { // 어떤 PHP 코드 } } ?>

우리는 자동차의 청사진을 만들었습니다. 이제 공장에 가서 이 클래스의 객체(즉, 구체적인 자동차)를 만들어야 합니다.

PHP에서는 new 키워드와 그 뒤에 클래스 이름을 써서 이 작업을 수행합니다:

<?php new Car; ?>

그러나, 클래스의 객체를 그냥 생성하는 것만으로는 아무 일도 일어나지 않습니다(이는 마치 배열을 선언하고 어디에도 저장하지 않는 것과 같습니다). 우리에게는 이 객체를 저장할 변수가 필요합니다.

이 변수를 $myCar라고 부르기로 하고, 우리가 생성한 객체를 여기에 저장해 보겠습니다:

<?php $myCar = new Car; ?>

자동차를 만든 후에는 그 속성에 접근할 수 있습니다. 속성에 접근할 때는 화살표 ->를 사용합니다. 우리 객체의 속성을 설정해 봅시다:

<?php $myCar = new Car; // 공장에 자동차를 만들라고 명령 // 객체의 속성을 설정합니다: $myCar->color = 'red'; // 빨간색으로 칠함 $myCar->fuel = 50; // 연료를 채움 ?>

자, 우리 자동차가 만들어지고, 칠해지고, 연료가 채워졌습니다. 이제 이 자동차의 메서드를 통해 명령을 내릴 수 있습니다.

메서드에 접근할 때도 화살표를 사용하지만, 속성과 달리 메서드 이름 뒤에는 괄호를 써야 합니다. 우리 객체에게 명령을 내려 봅시다:

<?php $myCar->go(); $myCar->turn(); $myCar->stop(); ?>
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부