티스토리 뷰

1. 개념
$this의 역할
class 키워드로 클래스를 선언할 후에 인스턴스를 생성하게 됨
인스턴스에서 클래스 내의 변수에 접근하기 위해 자신을 가리키는 $this을 사용하게 됨
2. 예제
$this 예시
PHP 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
class Testclass
{
public $name ;
public $dong ;
 
//누가 몇동에 사는지 출력해주는 함수
public function location()
{
print_r( " { $name } { $dong } 에 살고 있습니다." );
print_r( <br><br> );
print_r( " { $this -> name } { $this -> dong } 에 살고 있습니다." );
}
}
 
//Testclass를 가져와 testUser1이라는 인스턴스를 생성
$testUser1 = new Testclass();
$testUser1 -> name = "유저1" ;
$testUser1 -> dong = "101동" ;
$testUser1 -> location();
 
print_r( "<br><br>" );
 
//Testclass를 가져와 testUser2이라는 인스턴스를 생성
$testUser2 = new Testclass();
$testUser2 -> name = "유저2" ;
$testUser2 -> dong = "102동" ;
$testUser2 -> location();
?>
결과 화면
코드 설명
class키워드를 사용하여 클래스를 선언하고 testUser1과 testUser2로 인스턴스를 생성하였습니다.
그리고 name과 dong 이라는 변수에 값을 넣고 클래스에 있는 함수를 불러서 누가 몇동에 사는지를 출력하고자 했습니다.
print_r을 통해 출력을 하고자 할 때 그냥 name과 dong으로 출력을 하게 되면 아무것도 나오지가 않습니다.
이렇게 설정을 하게 되면 같은 이름의 지역 변수를 찾기 때문에 아무런 값이 나오지 않게 됩니다.
즉, name과 dong으로 선언된 지역 변수가 없기 때문에 null로 나오게 됩니다.
그래서 이러한 것을 해결하고자 $this라는 키워드를 사용해서 인스턴스의 name을 지정하여 사용하도록 합니다.
위에 결과화면을 보게 되면 $this를 붙일 때와 그렇지 않을 경우의 차이를 볼 수 있습니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday