* 오늘의 진도
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 |
댓글