본문 바로가기

PHP40

5/30(2) 생활코딩 * 오늘의 진도 PHP 생성자 (인스턴스 초기화) 29. 생성자 (인스턴스 초기화) Constructor(생성자): 클래스를 기반으로 해서 인스턴스를 만드는 역할을 하는 것 여기서 SplFileObject()가 바로 생성자이다. 생성자를 통해서 앞에 new를 붙이면 인스턴스가 생성된다. 그런데 이 생성자를 통해서 인스턴스를 생성할 때, data.txt라는 상태를 객체에 주입했다. 즉, 객체를 만들 때 필수적인 상태를, 처음부터 주입하는 테크닉이다. 반대로 여기서는 인스턴스를 생성할 때 상태를 주입하지 않고, 생성한 후에 인스턴스 변수를 통해서 상태를 주입했다. 이 때의 문제는 상태를 주입하는 것을 잊어버릴 수도 있다는 것이다. 이 경우에도 생성자 차원에서 필수적으로 필요한 정보를 강제로 입력하는 방법을 .. 2020. 5. 30.
5/30 생활코딩 * 오늘의 진도 PHP 인스턴스 변수 만들기 28. 인스턴스 변수 만들기 이번 시간에 배울 것은 위 그림의 두 인스턴스가 각각 서로 다른 상태를 가져서 isFile이라는 메소드를 호출했을 때 서로 다른 파일에 대해서 그것이 파일인가 또는 존재하는가를 체크하도록 만드는 것이다. 1) 객체를 생성할 때 상태를 주는 것 - 나중에 공부 2) 인스턴스에 파일 이름 주입 $file이라고 하는 변수에 담겨있는 인스턴스에 filename이라고 하는 변수를 주입했다. 4행에 있던 data.txt를 $filename으로 바꾸면 잘 동작할까? filename이라는 변수가 정의되지 않았다는 에러가 뜬다. 이 filename이라는 변수는 is_file(isFile?)이라는 저 함수 안에서만 유효한 변수이다. $this->를 .. 2020. 5. 30.
5/29(7) 생활코딩 * 오늘의 진도 PHP 클래스와 인스턴스 그리고 메소드를 만들기 27. 클래스와 인스턴스 그리고 메소드를 만들기 지금까지는 객체의 소비자 입장에서 살펴봤다. 이제 생산자 입장에서 알아보자. 먼저 php가 제공하는 함수를 내부적으로 사용해서 저번시간의 예제와 똑같이 동작하는 객체를 만들어보자. Class를 만드는 방법 MyFileObject라는 Class를 설계도로 하는 구체적인 제품/상품(Instance)을 만들기 아래 var_dump가 true를 리턴하게 하고 싶다. isFile은 메소드이다. 실제로는 함수와 똑같은 것이다. isFile이라는 함수는 이제 MyFileObject라는 Class에 소속된다. cf) is_file이라는 함수는 PHP 전체에서 is_file이라는 함수는 얘만 있어야 한다는 아.. 2020. 5. 30.
5/29(6) 생활코딩 * 오늘의 진도 PHP 함수와 객체의 비교 26. 함수와 객체의 비교 먼저 다른 사람이 만든 객체의 사용자가 된 후에 스스로 객체를 만들어보자. (1) 함수를 통해서 파일을 다루는 방법 oop/compare.php 어떤 파일이 파일인가/디렉토리인가/존재하지 않는가를 체크 1~100 랜덤 숫자 함수를 통해서 로직을 잘 정리정돈한다는 측면에 주목한 프로그래밍 패러다임이 Procedure Programming이다. (2) 객체를 통해서 파일을 다루는 방법 객체라고 해서 함수를 안 쓰는 것이 아니다. 다만 함수 바깥쪽에 껍데기가 하나 더 생기는 것이다. PHP는 처음에는 함수 중심의 PP로 만들어졌다가 나중에 OPP를 수용하게 됐다. → OPP 이전과 이후 스타일이 공존 장점: OPP라는 산을 처음부터 넘을 필.. 2020. 5. 30.
5/29(5) 생활코딩 * 오늘의 진도 PHP PHP의 객체 지향 프로그래밍 25. PHP의 객체 지향 프로그래밍 객체 지향 프로그래밍(OOP) ↔ Procedural programming Procedural programming은 1) 명령이 순차적으로 실행된다. 2) procedure이라는 기능을 중요하게 사용한다. 다음은 procedure의 여러가지 이름이다. 즉 함수를 이용해서 프로그램을 만들어가는 프로그램 패러다임 또는 그러한 기능성을 제공하는 프로그래밍 언어들을 Procedural programming이라고 한다. OOP와 PP는 서로 대립되는 것이 아니다. PP의 기반 위에서 OOP가 탄생한 것이다. PP가 갖고 있는 부족함을 OOP가 보완해준다. 이 두 가지를 가르는 가장 중요한 차이는 PP에는 함수가 있었고 O.. 2020. 5. 29.