[PHP] PHP4.x 버전과 PHP 5.x 버전 비교(Comparison between PHP4 and PHP5)

  • 젠드엔진2가 내장되었습니다.
  • PHP GCI 버전이 php.exe 에서 php-cgi.exe 로 변경되었습니다.
  • PHP CLI 버전이 cli/php.exe 에서 주 디렉토리로 변경되었습니다.
  • PHP CLI 버전은 php.ini 지시어 설정과 상관없이 항상 전역 $argv(Array of arguments passed to script) 와 $argc(The number of arguments passed to script) 변수를 가지며, register_argc_argv(argv와 argc 변수를 선언할지 여부 설정)를 off로 설정해도 영향을 미치지 않습니다.
  • ISAPI 모듈들의 이름이 php4xxx에서 php5xxx로 바뀌었습니다.
  • 프로퍼티가 없는 객체를 “빈” 것으로 판단하지 않습니다.
  • 인터페이스 등을 사용할 경우, 사용 전 선언해야합니다.
  • 포함한 파일에 함수정의가 있을경우, 그 파일이 두번 포함 되었을 때,PHP5에서는 치명적인 오류가 발생합니다. include_once를 사용하길 권장합니다.
  • 키워드
    • 예외처리(try()-catch()-finally()[v5.5~])
    • 네임스페이스[v5.3~]
    • 인터페이스(interface,implements)
    • 추상클래스(abstract)
    • 접근제어자(private,protected,public)
    • instanceof : 객체의 클래스 확인
    • clone : 객체 복제
    • 컴파일 상수
      • __NAMESPACE__ [v5.3~]
      • __DIR__ [v5.3~]
  • DataBase
    • MySQL 클라이언트 라이브러리를 포함하지 않습니다.
    • MySQL 4.1 이상에서 동작하는 MySQLi가 추가되었습니다.
    • SQLite 확장 모듈이 포함됩니다.
  • 새로운 함수가 추가되었습니다.(New Functions)
    • 배열 (9개)
      • array_combine() : 하나의 배열은 키로, 하나의 배열은 값으로 가지는 배열 생성 합니다.
      • array_walk_recursive() : 배열의 모든 원소에 사용자 함수를 적용합니다.
      • 이 외의 7개 함수
    • iconv (7개)
      • iconv_strlen() : 문자열의 문자 수를 반환 합니다.
      • iconv_strpos() : haystack에서 needle이 처음으로 나타나는 위치를 찾습니다.
      • iconv_strrpos() : haystack에서 needle이 마지막으로 나타나는 위치를 찾습니다.
      • iconv_substr() : 문자열의 일부를 잘라냅니다.
      • 이 외의 3개 함수
    • 스트림 (8개)
      • stream_copy_to_stream() : 한 스트림의 데이터를 다른 스트림으로 복제합니다.
      • stream_get_line() : 스트림 자원에서 주어진 구분자로 나타나는 열을 얻습니다.
      • 이 외의 6개 함수
    • 날짜와 시간 관련 (4개)
      • idate() : 지역 날짜/시간을 정수로 바꿉니다.
      • date_sunset() : 주어진 날짜와 위치의 일몰 시간을 반환합니다.
      • date_sunrise() : 주어진 날짜와 위치의 일출 시간을 반환합니다.
      • time_nanosleep() : 초와 나노초의 수만큼 지연합니다.
    • 문자열 (3개)
      • str_split() : 문자열을 배열로 변환합니다.
      • strbrk() : 문자열에서 문자 세트에 있는 문자를 검색합니다.(대소문자 구분하여 세트중 한글자라도 먼저 나오는것을 찾습니다.)
      • substr_compare() : 두 문자열을 offset부터 length까지(대소문자 구분없이:옵션) 바이너리로 안전하게 비교합니다.
    • 인터베이스 (19개)
    • 기타 (30개)
      • file_put_contents() : 문자열을 파일로 씁니다.
      • get_headers() : HTTP 요청의 응답으로 서버가 보낸 모든 헤더를 가져옵니다.
      • http_build_query() : 배열을 이용하여 URL-encode한 쿼리 문자열을 생성합니다.
      • scandir() : 지정한 경로 안에 파일과 디렉토리 목록을 배열로 반환합니다.
      • 이 외의 27개 함수
    • 자세한 내용은 해당링크에서 확인 하실 수 있습니다.
  • 새로운 지시어 (php.ini 지시어)

참고자료