이곳은 개발을 위한 베타 사이트 입니다.기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 PHP (문단 편집) === PHP 7.4 이하 버전 단점 === * 정의되지 않은 변수(undefined)를 쓸 수 있었다. 다만 이 단점은 최근 버전에서 해결되었는데, PHP 8.0부터는 인터프리터 알림에서 경고로 상향했다. PHP 9.0부터는 정의되지 않은 변수를 쓰면 파싱에러가 나고 쓸 수없게 한다. (즉, 프로그램 실행 불가). 정의되지 않은 변수를 쓰는 것이 단점인 이유는 없는 변수를 써도 무시하기 때문에 개발자가 실수를 하게되기 때문이다. 옛날 버전들은(PHP 7.4까지) 정의되지 않은 변수를 사용했다는 알림만 보여줬다. 알림은 에러 설정을 E_ALL로 해놔야 표시된다[* Notice 수준의 로그로 보여주는데 php.ini에서 설정을 껐으면 모르고 지나치기 쉽다.]. 느슨한 ==가 아닌 === 을 쓰더라도 같다는 결과가 나온다. 이를 확인하려면 get_defined_vars 함수(지역 변수) 또는 $GLOBALS 변수(전역 변수) 등을 통해 선언된 변수의 목록 배열을 얻어온 다음, 그 배열에 변수가 포함되어 있는지를 확인해야 한다. 그러나 null과 구분되지 않는 특성을 이용해 일반적으로 php 코드에서는 isset 함수로 체크한다. * 오류와 예외처리가 일관되지 않다 PHP 8버전등 최근버전에서 고치고있으나 그이전 버전을 보면 예외처리해야할 요소에 그저 E_WARNING 등의 경고만 내서 프로그램안에서 해당오류를 컨트롤 할 수없는 것들이 많았고 false 를 리턴 하는게 많았다. * PHP 5.X 대는 현재 PHP 의 나쁜이미지를 쌓는 시기였다. 버전이 정체되어 느리고 이상한 동작도많고 타입도 부여되지 않았으며 특히 PHP 5.4.X는 보안에 문제가 많았는데 register global 문제가 있었다.[* 전역변수를 덮어 쓰기하는 문제] 하지만 PHP 5.X대가 오랫동안 유지되어 아마존, 페이스북을 비롯한 PHP 를 사용하던 대다수의 기업들이 PHP 5.2 ~ 5.5 시기에 빠져나갔다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기