기존 PHP 4 코드의 대부분은 변경 없이 작동하지만, 다음의 비호환 변경점에 주의를 해야 합니다:
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) {
// 이 부분이 실행됩니다.
}
?>
다음 예제는 PHP 4에서는 유효하지만, PHP 5에서는 치명적인 오류를 생성합니다.
Example#3 클래스는 사용하기 전에 정의해야 합니다.
<?php
$test = new fubar();
$test->barfu();
class fubar {
function barfu() {
echo 'fubar';
}
}
?>