이전 버전과 호환하지 않는 변경점

기존 PHP 4 코드의 대부분은 변경 없이 작동하지만, 다음의 비호환 변경점에 주의를 해야 합니다:

예 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';
    }
}
?>