PHP 5.6에서 달라진 부분들 중에서 중요하거나 관심 있는 부분만 정리 해본다.

사라진 기능들

$HTTP_RAW_POST_DATA 전역변수 제거

기본적으로 비활성화 되어있고 php.ini 설정에서 always_populate_raw_post_data = On 으로 활성화 시킬 경우 Deprecate 에러 메시지가 발생한다. 앞으로는 POST 데이터를 직접 읽어들일 때 php://input 스트림을 사용해야 한다. 이 변경으로 POST 데이터를 다룰 때의 메모리 사용량이 2-3배 감소하고 2GB 이상의 파일 업로드가 가능해졌다고 한다.

기본 문법 등 개선

** 연산자 추가

지수승 연산자가 추가되었는데 Python 등의 언어처럼 오른쪽부터 결합되는 형태이므로 pow 함수를 사용할 때와는 접근 방법이 다를 수 있다.

echo 2 ** 3 ** 2; //=> 512 (64가 아님)
echo -3 ** 2; //=> -9 (9가 아님)
echo 1 - 3 ** 2; //=> -8
echo ~3 ** 2; //=> -10 (16이 아님)

가변 인자 파라미터

function test($firstParam, ...$otherParams) {
    var_dump($firstParam, $otherParams);
}

test(1, 2, 3); 
출력 결과
int(1)
array(2) {
  [0]=>
  int(2)
  [1]=>
  int(3)
}

함수 인자를 풀어서 전달

$params = array(2, 3, 4);
func(1, ...$params); 

위의 호출은 아래의 호출 결과와 동일하다

func(1, 2, 3, 4);

상수 선언에 스칼라 표현 사용

const VAL1 = 1 + 2;
const VAL2 = VAL1 > 3 ? 1 : 2;

익스텐션 관련 변경

Zip

압축 파일에 비밀번호를 설정할 수 있는 ZipArchive::setPassword() 함수가 추가되었다.

참고