기존 PHP 4 코드의 대부분은 변경 없이 작동하지만, 다음의 호환 되지 않는 변경점에는 주의해야 합니다:
E_WARNING
대신
E_ERROR
를 발생합니다. 비정상적인 사용의 예제:
$str = 'abc'; unset($set[0]);
E_WARNING
을 발생합니다. 코드가 갑작스레
E_WARNING
를 표시하기 시작할 수 있으므로
주의하십시오.
T_ML_COMMENT
상수를 정의하지 않습니다.
error_reporting을 E_ALL
로 설정하면, PHP가 주의문을
생성합니다. T_ML_COMMENT
는 사용되지 않았지만, PHP
4에서 정의되어 있었습니다. PHP 4와 PHP 5 둘 다,
T_COMMENT
상수가 //와 /* */를 모두 인식합니다.
그러나 PHP 5에서 도입한, PHP가 처리하는 PHPDoc 스타일 주석 /** */은,
T_DOC_COMMENT
로 인식합니다.
__CLASS__
,
__METHOD__
, __FUNCTION__
에도
적용됩니다. 반환되는 값은 정확히 선언한 대로(대소문자 구분) 입니다.
FALSE
를 반환합니다.
Example #1 strrpos()와 strripos()가 전체 문자열을 needle로 사용합니다.
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
Example #2 프로퍼티가 없는 객체를 더 이상 "빈" 것으로 판단하지 않습니다.
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// 이 부분이 실행됩니다.
}
?>
Example #3 몇몇 경우에 클래스는 사용하기 전에 선언해야 합니다.
<?php
// 오류 없이 실행:
$a = new a();
class a {
}
// 오류 발생:
$a = new b();
interface c {
}
class b implements c {
}
?>