웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP 4에서 PHP 5로 이행
2004.04.30 21:20
http://www.php.net제 개인 홈 페이지 : http://www.joeunmart.com ( 홈 자랑해서 미안해유^^;;)
이전 버전과 호환하지 않는 변경점
기존 PHP 4 코드의 대부분은 변경 없이 작동하지만, 다음의 비호환 변경점에 주의를 해야 합니다:
strrpos()와 strripos()가 전체 문자열을 needle로 사용합니다.
문자열 오프셋의 비정상적인 사용은 E_WARNING 대신 E_ERROR를 발생합니다.
array_merge()가 배열만을 받아들이게 변경되었습니다. 배열이 아닌 값을 넘기면, 그러한 인수마다 E_WARNING을 발생합니다. 코드가 갑작스레 E_WARNING를 표시하기 시작할 수 있으므로 주의하십시오.
더이상 Apahce2 SAPI에서 PATH_TRANSLATED 서버 변수를 자동으로 설정하지 않습니다. PHP 4에서는 아파치가 생성하지 않았을 때, SCRIPT_FILENAME 서버 변수와 동일하게 설정했었습니다. 이 변경은 CGI 규격에 따르기 위한 점입니다. 자세한 정보는 버그 #23610를 참고하십시오.
Tokenizer 확장은 더 이상 T_ML_CONSTANT 상수를 정의하지 않습니다. error_reporting을 E_ALL로 설정하면, PHP가 주의문을 생성합니다. T_ML_CONSTANT는 사용되지 않았지만, PHP 4에서 정의되어 있었습니다. PHP 4와 PHP 5 둘 다, T_COMMENT 상수가 //와 /* */를 모두 인식합니다. 그러나 PHP 5에서 도입한, PHP가 처리하는 PHPDoc 스타일 주석 /** */은, T_DOC_COMMENT로 인식합니다.
variables_order가 "S"를 포함하고 있으면, $_SERVER는 argc와 argv를 가져야 합니다. 시스템이 $_SERVER를 생성하지 않게 설정하였다면, 물론 존재하지 않아야 합니다. 변경 후에는 variables_order 설정에 관계 없이, CLI 버전에서 argc와 argv를 사용할 수 있게 만듭니다. 또한, CLI 버전은 항상 전역의 $argc와 $argv도 가집게 되었습니다.
프로퍼티가 없는 객체를 더 이상 "빈" 것으로 판단하지 않습니다.
클래스는 사용하기 전에 정의해야 합니다.
예 B-1. strrpos()와 strripos()가 전체 문자열을 needle로 사용합니다.
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
예 B-2. 프로퍼티가 없는 객체를 더 이상 "빈" 것으로 판단하지 않습니다.
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if (!$t) {
// 이 부분이 실행됩니다.
}
?>
다음 예제는 PHP 4에서는 유효하지만, PHP 5에서는 치명적인 오류를 생성합니다.
예 B-3. 클래스는 사용하기 전에 정의해야 합니다.
<?php
$test = new fubar();
$test->barfu();
class fubar {
function barfu() {
echo 'fubar';
}
}
?>
출처 : php.net
이전 버전과 호환하지 않는 변경점
기존 PHP 4 코드의 대부분은 변경 없이 작동하지만, 다음의 비호환 변경점에 주의를 해야 합니다:
strrpos()와 strripos()가 전체 문자열을 needle로 사용합니다.
문자열 오프셋의 비정상적인 사용은 E_WARNING 대신 E_ERROR를 발생합니다.
array_merge()가 배열만을 받아들이게 변경되었습니다. 배열이 아닌 값을 넘기면, 그러한 인수마다 E_WARNING을 발생합니다. 코드가 갑작스레 E_WARNING를 표시하기 시작할 수 있으므로 주의하십시오.
더이상 Apahce2 SAPI에서 PATH_TRANSLATED 서버 변수를 자동으로 설정하지 않습니다. PHP 4에서는 아파치가 생성하지 않았을 때, SCRIPT_FILENAME 서버 변수와 동일하게 설정했었습니다. 이 변경은 CGI 규격에 따르기 위한 점입니다. 자세한 정보는 버그 #23610를 참고하십시오.
Tokenizer 확장은 더 이상 T_ML_CONSTANT 상수를 정의하지 않습니다. error_reporting을 E_ALL로 설정하면, PHP가 주의문을 생성합니다. T_ML_CONSTANT는 사용되지 않았지만, PHP 4에서 정의되어 있었습니다. PHP 4와 PHP 5 둘 다, T_COMMENT 상수가 //와 /* */를 모두 인식합니다. 그러나 PHP 5에서 도입한, PHP가 처리하는 PHPDoc 스타일 주석 /** */은, T_DOC_COMMENT로 인식합니다.
variables_order가 "S"를 포함하고 있으면, $_SERVER는 argc와 argv를 가져야 합니다. 시스템이 $_SERVER를 생성하지 않게 설정하였다면, 물론 존재하지 않아야 합니다. 변경 후에는 variables_order 설정에 관계 없이, CLI 버전에서 argc와 argv를 사용할 수 있게 만듭니다. 또한, CLI 버전은 항상 전역의 $argc와 $argv도 가집게 되었습니다.
프로퍼티가 없는 객체를 더 이상 "빈" 것으로 판단하지 않습니다.
클래스는 사용하기 전에 정의해야 합니다.
예 B-1. strrpos()와 strripos()가 전체 문자열을 needle로 사용합니다.
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
예 B-2. 프로퍼티가 없는 객체를 더 이상 "빈" 것으로 판단하지 않습니다.
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if (!$t) {
// 이 부분이 실행됩니다.
}
?>
다음 예제는 PHP 4에서는 유효하지만, PHP 5에서는 치명적인 오류를 생성합니다.
예 B-3. 클래스는 사용하기 전에 정의해야 합니다.
<?php
$test = new fubar();
$test->barfu();
class fubar {
function barfu() {
echo 'fubar';
}
}
?>
출처 : php.net
댓글 5
-
천상원
2004.05.15 14:46
-
써니루루☆
2004.04.30 22:11
좋은 내용입니다.
위 언급하신것보다 훨씬 많은 내용이 있지만 비교적 간단한 개괄적인 내용을 소개해 주셨네요. -
토끼군
2004.05.02 08:46
/** ... */ 형태의 주석을 언어 자체에서 지원하기 시작한다는 게 의외로 새롭(?!)군요. :S -
써니루루☆
2004.05.02 14:32
예전엔 PHPDoc라는 프로그램을 받아서 사용해야 Document파일을 생성할 수 있었죠. -
◁aeries▷
2004.06.02 16:37
/** ... */ 자바를 떠올렸습니다...;
제목 | 글쓴이 | 날짜 |
---|---|---|
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] | U2em | 2004.05.31 |
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] | 김동욱 | 2004.05.30 |
초간단 설문조사 소스 [3] | 이혁 | 2004.05.27 |
PHP로 구현하는 음악 감상실 [9] | 컴도미 | 2004.05.21 |
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] | 9000㎒ | 2004.05.18 |
팁 아닌 팁 한달전... | http://zentoo.com | 2004.05.15 |
포털사이트 처럼 시스템 점검중 만들기 [3] | http://zentoo.com | 2004.05.14 |
PHP 4에서 PHP 5로 이행 [5] | 이종현 | 2004.04.30 |
PHP5 RC2 Released. [4] | 써니루루☆ | 2004.04.27 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
엔지오 채널 따라하기 -_-& www자동 붙이기 [6] | 박종찬 | 2004.04.18 |
트랙백 구현하기 - 1. 트랙백이란 무엇인가? [4] | TheMics | 2004.04.18 |
[국에 밥말아먹는 PHP 프로그래밍] 1-1. PHP는 뭐하는 밥이냐?! (상) (Build 2) [17] | 9000㎒ | 2004.04.18 |
배열의 정렬에 대한 약간의 강의 [2] | ♡다솜지기♡ | 2004.04.02 |
드디어 PHP 5 RC1 발표(04.03.18) [8] | 써니루루☆ | 2004.03.19 |
PHP와 MYSQL연동 관련함수 [3] | 백무혼 | 2004.03.07 |
함수] Exec 함수에 대한 간략한 설명 [3] | NS | 2004.03.05 |
초간단 인라이브 방송여부 알아보기 프로그램. [12] | 심심타 | 2004.03.01 |
[허접팁]윈엠프 리스트창에 방송정보 보여주기;;[수정] [5] | 『처니리♂』 | 2004.02.29 |
무슨무슨함수들이 안되는지 지금쓰는게 안될까바 걱정됬는데;;