다형성 – 5.함수의 바인딩

함수를 컴파일하게 되면 해당 함수의 프로그램 코드가 물리적인 메모리상의 임의의 위치에 저장되며, 저장된 메모리 주소(address)를 호출하는 코드와 연결시켜 줍니다. 함수를 호출하는 코드와 함수가 위치한 메모리 주소를 연결시켜 주는 과정을 바인딩(binding)이라고…

Continue Reading 다형성 – 5.함수의 바인딩

다형성 – 4.PHP의 함수 오버라이딩 및 오버로딩

PHP는 느슨한 타입(loosely typed) 검사를 하는 언어로 특별히 자료형을 지정하지 않더라도 자동 자료형변환(type juggling)을 통해 왠만한 연산은 에러 없이 수행할 수 있습니다. 그러나 여기서는 PHP 7부터 제공되는 strict 모드와 클래스…

Continue Reading 다형성 – 4.PHP의 함수 오버라이딩 및 오버로딩

다형성 – 3.오버라이딩 및 오버로딩

객체지향 프로그래밍에서 다형성 개념은 오버로딩(중복정의)을 통해서도, 오버라이딩(재정의)을 통해서도 구현되고 있습니다. 그런데 많은 분들이 개념상 이 둘을 혼용하고 있어서 이 둘의 차이점을 정리하고자 합니다. 오버라이딩(overridding; 재정의) 객체지향언어에서 말하는 오버라이딩은 상속 관계에서…

Continue Reading 다형성 – 3.오버라이딩 및 오버로딩

다형성 – 2.다형성의 예

객체지향 프로그래밍에서의 각 객체는 스스로 주어진 독립적인 역할을 수행하도록 하는 것이 매우 중요하기 때문에, 동일한 메시지(함수 호출)에 대해 독립적인 각 객체가 서로 다르게 반응할 수 있어야 합니다. 아래의 예에서 보면,…

Continue Reading 다형성 – 2.다형성의 예

네임스페이스 – 6.이름지정규칙

이름지정규칙(Name resolution rules) 네임스페이스 지원으로 이름(클래스명, 함수명 등)은 동일하지만 서로 다른 네임스페이스에 소속될 수 있기 때문에 각 이름이 소속된 네임스페이스를 명확히 지정할 필요가 있습니다. 이름을 지정하는 방법으로는 크게 4가지로 나눌…

Continue Reading 네임스페이스 – 6.이름지정규칙

네임스페이스 – 5.네임스페이스 다루기

네임스페이스 다루기 임의의 네임스페이스 내에 있는 모든 심볼(클래스명, 함수명, 변수명, 상수명 등)은 네임스페이스_식별자::심볼과 같은 식으로 다루어집니다. namespaced_idenfitier::symbol; [crayon-6075eac7d0c9b605469110/] [crayon-6075eac7d0ca0476968864/] use 연산자(use operator) use namespaced_name as othername; use 연산자를 사용하면 원래 네임스페이스 이름 대신에…

Continue Reading 네임스페이스 – 5.네임스페이스 다루기

네임스페이스 – 4.내장 네임스페이스

내장 네임스페이스 php v5.3 이전의 네임스페이스 php v5.3 이전에도 내장된 네임스페이스가 존재하고 있었습니다. [crayon-6075eac7d0e9e924632945/] test() 함수 내에서 동일한 변수이름 $str이 두 번 사용되고 있지만 하나는 지역 네임스페이스에서, 다른 하나는 전역…

Continue Reading 네임스페이스 – 4.내장 네임스페이스

네임스페이스 – 3.네임스페이스의 정의

네임스페이스의 정의 이 문서에서 기술된 모든 소스는 2008년 8월 6일자 php-5.3.0 알파2 개발버전(php5.3-win32-200808062030.zip)으로 테스트하였습니다. 네임스페이스의 정의는 namespace 키워드에 이어 네임스페이스 식별자(identifier)를 지정합니다. namespace identifier; 스크립트 문서 단위로 이루어지는 네임스페이스 C++과 같은 다른…

Continue Reading 네임스페이스 – 3.네임스페이스의 정의

네임스페이스 – 2.네임스페이스의 필요성

네임스페이스의 필요성 PHP로 프로그래밍할 때 보통 일인체제하에 소규모로 만들어지는 경우가 많다 보니 함수명, 클래스명과 같은 이름이 중복되어 충돌되는 것을 쉽게(?) 피할 수 있었습니다. 그러나 이제 PHP도 여러 사람이 공동 작업하는…

Continue Reading 네임스페이스 – 2.네임스페이스의 필요성