php

    클래스 및 객체(7)

    static과 final에 대해 정리해보겠습니다. 1) static 변수와 메소드 선언 시 사용할 수 있습니다. static으로 선언된 변수와 메소드는 정적변수/정적메소드 라고 칭하며, [ new 클래스 ] 같이 인스턴스 생성을 위한 코드를 작성할 필요가 없이 바로 접근 혹은 호출이 가능합니다. static을 변수 선언에 사용할 경우 해당 변수는 클래스 내부에서 공유됩니다. 클래스 내부에서 객체를 생성할 필요 없이 바로 사용할 수 있습니다. static을 메소드 선언에 사용할 경우 핻아 메소드 역시 클래스 내부에서 공유됩니다. 마찬가지로 객체를 생성할 필요 없이 '클래스::메소드()'로 사용할 수 있습니다. static을 이용한 변수와 메소드 선언은 클래스 내부에서 객체간의 공유가 필요할 때 이루어지며,..

    클래스 및 객체(6)

    이번엔 멤버변수와 접근제어자에 대해 정리해보겠습니다. 멤버변수는 클래스에 속하는 변수입니다. php 3,4 버전에서는 이를 variable 이라고 불렀지만 5버전 부터는 class member 라고 하고 7버전 에서는 property 라고 합니다. 즉, 변수/멤버변수/클래스멤버/프로퍼티 는 전부 같은 뜻이라고 보면 되겠습니다. 최신 용어가 property 이므로 프로퍼티라는 용어를 사용하도록 하겠습니다. 클래스에 속하는 변수이기 때문에 클래스에 속하는 모든 메소드에서 사용이 가능한 변수입니다. 프로퍼티의 특징은 초기화가 필요 없다는 것 입니다. 프로퍼티를 선언하고 값을 할당하지 않으면 자동으로 null값이 할당됩니다. 또한 클래스에서 선언한 프로퍼티와 같은 이름으로 지역변수를 선언할 수 있으며 이렇게 선..

    클래스 및 객체(5)

    이번엔 생성자에 대해 다뤄보겠습니다. 생성자란 ? 메모리상에 객체를 생성시켰을 때 가장 먼저 수행할 작업을 기술하는 메소드 입니다. 조금 더 쉽게 얘기하자면, 클래스 내에 해야 할 일들을 지정해 주는 것 입니다. public function __construct 생성자의 사용법은 위와 같습니다. 코드로 확인해보겠습니다. private 을 이용하여 같은 클래스 내에서만 유효한 a,b,c 변수를 만들고 Sports 라는 Class를 만들었습니다. 안의 세부내용은 __construct 생성자를 이용해 인스턴스 생성 시 다음과 같이 초기 값을 세팅해주었습니다. a,b,c 각각의 매개변수의 인자값을 is_string으로 문자열인지 확인 후 참이면 a,b,c 거짓이면 Error 라는 문자열이 first, secon..

    클래스 및 객체(4) - $this-> 의 이해

    이번엔 클래스를 생성하고 그 클래스를 통한 인스턴스를 생성해보겠습니다. class MyFileObject1{ function isFile(){ return false; } } $file = new MyFileObject1(); var_dump($file->isFile()); MyFileObject1 이라는 클래스를 생성하였고 그 안에 isFile 이라는 메소드를 만들었습니다. isFile 메소드는 항상 false를 리턴합니다. 해당 클래스를 기반으로 하는 $file 이라는 인스턴스를 생성했습니다. 그리고 isFile 이라는 메소드를 호출하여 그 값에 대한 정보를 var_dump 로 출력합니다. 클래스를 생성할 땐 다음과 같이 생성합니다. class 클래스명{} 중괄호 안에는 클래스에 대한 내용물이 들어갑..

    클래스 및 객체(3)

    이번엔 절차지향과 객체지향의 배열에 관해 설명합니다. Procedural Object Oriented 앞선 글과 마찬가지로 상단 Procedural 부분이 절차적 프로그래밍 코드이고, 밑에 Object Oriented 부분이 객체지향 프로그래밍 코드가 되겠습니다. 일단 두 코드의 기능은 완전히 동일합니다. $array1 과 $array2 로 만들어 놓은 것은 배열을 만드는 방법이 달라 2가지로 표현하기 위함입니다. 연관배열로 선언하는 방법도 있지만 여기선 저 두 가지만 표현했습니다. 절차적 코드를 해석해보면, array1 이라는 변수에 1,2,3 의 배열을 선언하였고, 마찬가지로 array2 라는 변수에 1,2,3 의 배열을 선언했습니다. 이후 array_push 라는 함수를 이용해 $array1, $a..

    클래스 및 객체(2)

    Procedural Object Oriented 소스코드의 위쪽 Procedural 부분이 절차적 프로그래밍 코드이고, 밑에 Object Oriented 부분이 객체지향 코드입니다. 절차적(순차적) 코드를 보면 특정 함수 사용 시 "phpinfo.php" 라는 인자값을 각각 넣어주었습니다. 파일이 변경된다고 하면 해당 인자를 전부 바꿔줘야 합니다. 객체지향 코드를 보겠습니다. splfileobject 라는 php에서 제공하는 클래스를 이용하여 file 이라는 객체(인스턴스)를 생성하였습니다. (해당 인스턴스의 인자는 phpinfo.php 입니다) 그 다음이 splfileobject 라는 클래스 내에서 만들어져있는 메소드(isFile, isDir 등)를 호출한 모습입니다. 사용법은 객체->메소드() 형태가..