php 에서 함수에 관해 공부를 할때 코드의 재활용이나 효율성등을 고려해서 코드의 집합을 하나의 함수로 만들고 해당 함수를 다양한 곳에서 호출하여 함수 안의 코드가 작동해서 결과를 얻어낼 수 있다고 학습했습니다.
여기서 더 확장된 개념이 객체화 라는 것입니다.
class 라는 것을 정의하고 해당 class를 여러 인스턴스로 구분해서 사용할 수 있게 해 줍니다. 다양한 인스턴스를 생성해서 class를 계속 활용할 수 있으니 효율이 높아지겠죠.
class Class_name {
}
이런 형식으로 class 단위로 만들어 줄 수 있습니다.
class 안에는 함수(메서드)를 작성해서 인스턴스(객체)를 생성해서 수시로 사용할 수 있게 합니다.
class Class_name {
public function func_name() {
실행코드
}
}
이렇게 class를 만들고 활용하면 되는 것 입니다.
인스턴스를 생성한다 또는 객체를 생성한다는 의미는
$name = new Class_name;
이렇게 새로운 인스턴스로 해당 클래스를 사용하겠다라고 작성해 주는 것으로 출발합니다.
이제 $name 에 사용할 변수를 할당할 수 있습니다.
$name->value1 = 'string';
$name->value2 = 1234;
다시 새로운 인스턴스를 생성해서 class를 또 사용할 수 있습니다.
$name = new Class_name;
$name->value1 = 'test';
$name->value2 = 5678;
php 코드 중에서 $this->블라블라 이부분이 자주 등장했는데 이부분이 뭔지 궁금하셨던 분들이 많을 겁니다. 저도 이번에 객체에 대해서 공부하면서이 부분이 왜 등장하는지 알게 되었네요.
객체화에 대해 조금 쉽게 이해하도록 간단한 예제코드로 살펴보겠습니다.
<?php
class test{
public function testfunc() {
print $this->value1."<br>";
print $this->value2."<br><br>";
}
}
$ins = new test;
$ins->value1 = 'abcd';
$ins->value2 = '1234';
$ouput = $ins->testfunc();
echo $output;
$ins = new test;
$ins->value1 = '가나다라';
$ins->value2 = '0987';
$ouput = $ins->testfunc();
echo $output;
$arg = new test;
$arg->value1 = '1234';
$arg->value2 = 'ABCD';
$ouput = $arg->testfunc();
echo $output;
class 를 만들고 이 class를 여러번 다른 인스턴스에서 활동하도록 코드를 짜 보았습니다.
결과는
abcd
1234
가나다라
0987
1234
ABCD
이렇게 출력이 되게 됩니다.
3개의 인스턴스에서 클래스의 메서드(함수)가 실행이 되어서 나온 결과입니다.
한번의 클래스 작성으로 다른 인스턴스에서 변수에 각기 다른 값을 적용하여 결과를 만들어 낼 수 있는 것 입니다.
여기서 $this 의 역할이 눈에 보입니다.
객체화의 장점을 확인 할 수 있을 것 같습니다.
$this가 가리키는 것은 현재 메서드를 호출하고 있는 인스턴스를 지목하고 있는 것 입니다.
대략 객체화의 아주 기본적인 구조에 대해서 꼭 이해를 해야 좀더 고급의 코드 작성을 학습할 수 있을 것 입니다.
요즘 시간이 안나서 일주일에 두번 정도 방문하는데
포기하면 안되는데. ㅠㅠ