not bad 한 개발

PHP - 클래스와 객체 사용하기 본문

PHP/PHP class

PHP - 클래스와 객체 사용하기

leebean 2022. 3. 31. 16:51

(w3school의 PHP 튜토리얼을 사용했습니다.)

https://www.w3schools.com/php/php_oop_classes_objects.asp

 

PHP OOP Classes and Objects

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

 클래스 선언하기 

PHP 언어는 객체지향 언어이기에 클래스가 반드시 존재합니다, 그렇기에 평소에 Java, C++ 등의 객체지향 언어를 공부해왔던 사람이라면 눈에 익숙할 것입니다. 

 

(클래스 선언 예시)

<!DOCTYPE html>
<html>
	<body>
		<?php
			class test {
				public $num1; // property
				public $str1; // property

				function set_info($num1, $str1){ // method
					$this->num1 = $num1;
					$this->str1 = $str1;
				}
				function get_str(){ // method
					return $this->str1;
				}
				function get_num(){ // method
					return $this->num1;
				}
			}
		?>
	</body>
</html>

(두 개의 프로퍼티 (num1, str1)를 만들어주고 두 개의 프로퍼티 속성을 설정하고 가져오기위한 총 세 개의 메서드(set_info, get_str, get_num)로 구성된 test이름의 클래스를 선언했습니다.)

 

 객체 선언하기 

설계도로 제품이 알아서 나오지 않듯이 클래스도 만든다 해서 끝이 아닙니다, 클래스를 활용하려면 객체를 만들어야 합니다, 그리고 객체를 생성하는 방법이 Java와 매우 유사합니다, 참고로 클래스로 객체를 만드는 과정을 인스턴스화라고 부릅니다.

 

(객체 선언 예시)

<!DOCTYPE html>
<html>
	<body>
		<?php
			class test {
				public $num1; // property
				public $str1; // property

				function set_info($num1, $str1){ // method
					$this->num1 = $num1;
					$this->str1 = $str1;
				}
				function get_str(){ // method
					return $this->str1;
				}
				function get_num(){ // method
					return $this->num1;
				}
			}
			$Test = new test(); // $Test 객체 선언
			$Test->set_info(1, "test");// $num1, $str1에 1, 문자열 test 저장
			echo "str1 = ".$Test->get_str()."<br>"; // get_str() 함수를 통해 str1의 내용 호출
			echo "num1 = ".$Test->get_num(); // get_num() 함수를 통해 num1의 내용 호출
		?>
	</body>
</html>

 

 this키워드 와 메서드 호출 방식 

위의 두 코드에서 $this 키워드와 "->"를 보셨을 겁니다, $this 키워드는 현재 클래스 내에 있는 메서드에서만 사용이 가능하고 현재 클래스를 의미합니다. 그리고 "->"는 간단히 이야기하자면 Java에서 객체를 통해 메서드를 호출하려면 (참조 변수. 메서드 혹은 프로퍼티) 방식으로 호출하는 것처럼 PHP의 "->"는 Java의 '.'과 같은 기능을 가집니다.

 

 instanceof 

instanceof는 만든 객체가 특정 클래스에 해당되는지 확인할 수 있는 키워드입니다.

 

(instanceof 예시)

<!DOCTYPE html>
<html>
	<body>
		<?php
			class test {
				public $num1; // property
				public $str1; // property

				function set_info($num1, $str1){
					$this->num1 = $num1;
					$this->str1 = $str1;
				}
				function get_str(){
					return $this->str1;
				}
				function get_num(){
					return $this->num1;
				}
			}
			$Test = new test();
			var_dump($Test instanceof test); // true
			// $Test는 test클래스에서 생성된 객체이기 때문에 true
		?>
	</body>
</html>

'PHP > PHP class' 카테고리의 다른 글

PHP - 소멸자(destruct )  (0) 2022.05.05
PHP - 생성자(construct)  (0) 2022.04.30
PHP - 접근 제어자  (0) 2022.04.01
PHP- 개발환경 설정하기(Bitnami)  (0) 2022.03.18
PHP - 테스트 환경 구축하기(Bitnami)  (0) 2022.03.18
Comments