본문 바로가기
PHP/생활코딩

5/30 생활코딩

by SKim입니다 2020. 5. 30.

* 오늘의 진도

 PHP

  인스턴스 변수 만들기

 

28. 인스턴스 변수 만들기

 

이번 시간에 배울 것은 위 그림의 두 인스턴스가 각각 서로 다른 상태를 가져서

isFile이라는 메소드를 호출했을 때 서로 다른 파일에 대해서

그것이 파일인가 또는 존재하는가를 체크하도록 만드는 것이다.

 

1) 객체를 생성할 때 상태를 주는 것 - 나중에 공부

 

2) 인스턴스에 파일 이름 주입

$file이라고 하는 변수에 담겨있는 인스턴스에

filename이라고 하는 변수를 주입했다.

 

4행에 있던 data.txt를 $filename으로 바꾸면 잘 동작할까?

filename이라는 변수가 정의되지 않았다는 에러가 뜬다.

이 filename이라는 변수는 is_file(isFile?)이라는 저 함수 안에서만 유효한 변수이다.

 

$this->를 붙이니 제대로 동작한다.

 

인스턴스에 할당(주입)한 filename의 변수라고 할 수 있다.

이 filename이라는 변수는 is_file(isFile?)이라는 저 함수 안에서만 유효한 변수이고,

바깥쪽에는 접근할 수 없다.

 

이 클래스를 인스턴스화한 구체적인 인스턴스(여기서는 $file과 $file2에 담겨있는 인스턴스)에 부여된 변수(filename)에 접근하려면

 

$this라고 하는 약속된 키워드를 써야 한다.

 

$this라는 약속된 변수는, 이 클래스를 통해서 인스턴스화한,

그 인스턴스 자체를 가리키자는 약속이 되어 있다.

 

인스턴스 안에 주업되어 있는 filename이 무엇인지 알고싶을 때는

var_dump($file->filename)을 사용하면 된다.

 

 

$this->filename이라는 변수는 인스턴스 안에서 유효하다.

다시 말해서 data.txt는 $file에 담겨있는 인스턴스 안에서 유효한 것이고,

data2.txt는 $file2에 담겨있는 인스턴스 안에서 유효한 것이다.

 

그렇기 때문에 $this->filename이라고 하는 것은

인스턴스 안에서 유효하기 때문에

Instance variable = Instance field = Instance property = status라고 부른다.

Instance를 생략고 부를 수도 있다.

 

 

객체라는 것은 서로 연관된 상태와 행위를 객체로 그룹핑한 것이다.

Instance variable을 status,

method를 behavior라고 부르기도 한다.

'PHP > 생활코딩' 카테고리의 다른 글

5/30(3) 생활코딩  (0) 2020.05.30
5/30(2) 생활코딩  (0) 2020.05.30
5/29(7) 생활코딩  (0) 2020.05.30
5/29(6) 생활코딩  (0) 2020.05.30
5/29(5) 생활코딩  (0) 2020.05.29

댓글