Categories: IT

php에서 클래스(class), 인스턴스(instance), 메소드(method), 함수(funtion) 개념 쉽게 이해하기

생활코딩에서 php언어를 공부하고 있는 중입니다. 공부하면서 이해하고 있는 것들을 적어볼건데요.
<?php
$file = new SplFileObject(‘data.txt‘);
var_dump($file->isfile());
var_dump($file->isdir());
var_dump($file->fread($file->getsize()));
$file->fwrite(rand(1,100));
 
$file2 = new SplFileObject(‘data.txt’);
var_dump($file2->isfile());
var_dump($file2->isdir());
var_dump($file2->fread($file2->getsize()));
$file2->fwrite(rand(1,100));
?>
위와같은 코드가 있다라고 했을 때 클래스, 인스턴스, 매소드, 스테이트가 어떤건지 아래에 적었습니다.

  • SplFileObject : 클래스(Class)
  • $file, $file2 : 인스턴스(Instance)
  • isfile, isdir, fread : 메소드 혹은 함수(Method,funtion)
  • data.txt, data2.txt : 상태(state.스테이트)

위의 두가지 인스턴스들은 각각 다른 상태를 가지고 있기 때문에 메소드를 호출했을 때 매소드가 다르게 동작한다라고 읽을 수 있는데요. 저만의 방법으로 좀 더 쉽게 이해해본 내용은요.
공장을 예로 들어봅니다. 메소드들의 기능은 같죠. 자르는 메소드, 붙이는 메소드가 있다고 했을 때 그것들은 하나의 단순한 기계라고 볼 수 있겠습니다. 자르는 기능, 붙이는 기능이 있는 기계말입니다. 그리고 클래스는 설계도입니다. 그리고 인스턴스는 만들어진 제품이죠.
첫번째 코드를 읽어보면요. data.txt라는 원자재를 splfileobject라는 설계도로 가공하면 file이라는 제품이 나온다는겁니다. 그것이 결론이고요. 그럼 그 file이라는 제품이 나오기까지 어떤 과정을 거치냐하면 isfile 가공도하고 isdir가공도하고 fread가공도 하는것입니다.
file2라는 제품을 만드는것도 비슷합니다. file과 file2가 색깔이 다른 제품이라고 했을 때 둘이 만드는 방식은 같습니다. 다만 data.txt가 빨간색이라면 file가 빨간색이 될 것이고, data2.txt가 파란색이면 결과물인 file2도 파란색이 될 것입니다. 이것이 제가 공부하면서 이해해본 클래스, 인스턴스, 메소드들입니다. 독학이기 때문에 맞는지 알수는 없지만 비슷한 개념일 것 같고 혹시 제가 이상하게 이해하고 있다면 제보 부탁드립니다.

DDable

Share
Published by
DDable
Tags: php

Recent Posts

남자는 외모로 여자를 꼬실 수 없을정도가 적당한것 같다 25.4.1

여자가 남자를 조심해야하듯 남자 역시 여자를 조심해야한다. 요즘은 성형이 많은 시대라 예쁜여자, 잘생긴 남자가 엄청…

17시간 ago

너의 이야기를 진지하게 듣지 못했다 25.3.28

미안하다. 너의 고민, 마음속에 있던 이야기를 꺼냈는데 나는 진지하게 듣지 못했다. 진지하게 너에 대해 알아보려고…

3일 ago

피부과 관리 시술 2주차 (총12주 프로그램)

1주차에는 레이저토닝을 했었다. 수염제모 프로그램도 같이 해서 이것도 1주차에 하긴 했음. 드디어 2주차가 됐는데 이번에는…

7일 ago

크림에서 뉴발란스 운동화 993 그레이 사봤음

뉴발란스 993 이라는 존재를 알게 되고 계속 신고 싶었다. 스티브잡스가 992를 신었기 때문에 992를 신고…

2주 ago

키움증권 오픈API 재등록 방법

최근에 키움증권에서 문자가 하나 왔는데요. 오픈API를 재등록하라는겁니다. 매직스플릿이라는 프로그램을 사용해서 매매를 했는데 그것 때문인것 같아요.…

1개월 ago

FI다올저축은행 앱 어플 이체 안될때 해결 방법

파킹 통장때문에 FI 다올저축은행을 쓴단 말이지. 평소에 소액 이체는 토스로 했기 때문에 문제가 없었어. 근데…

2개월 ago