What has changed in PHP 5.3.x
New features
Migrating from PHP 5.2.x to PHP 5.3.x
PHP Manual

## Backward Incompatible Changes

Although most existing PHP 5 code should work without changes, please take note of some backward incompatible changes:

- The newer internal parameter parsing API has been applied across all the extensions bundled with PHP 5.3.x. This parameter parsing API causes functions to return `NULL` when passed incompatible parameters. There are some exceptions to this rule, such as the get_class() function, which will continue to return `FALSE` on error.
- clearstatcache() no longer clears the realpath cache by default.
- realpath() is now fully platform-independent. Consequence of this is that invalid relative paths such as __FILE__ . "/../x" do not work anymore.
- The call_user_func() family of functions now propagate $this even if the callee is a parent class.
- The array functions natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), and array_unique() no longer accept objects passed as arguments. To apply these functions to an object, cast the object to an array first.
- The behaviour of functions with by-reference parameters called by value has changed. Where previously the function would accept the by-value argument, a fatal error is now emitted. Any previous code passing constants or literals to functions expecting references, will need altering to assign the value to a variable before calling the function.
- The new mysqlnd library necessitates the use of MySQL 4.1's newer 41-byte password format. Continued use of the old 16-byte passwords will cause mysql_connect() and similar functions to emit the error, "mysqlnd cannot connect to MySQL 4.1+ using old authentication."
- The new mysqlnd library does not read mysql configuration files (my.cnf/my.ini), as the older libmysql library does. If your code relies on settings in the configuration file, you can load it explicitly with the mysqli_options() function. Note that this means the PDO specific constants `PDO::MYSQL_ATTR_READ_DEFAULT_FILE` and `PDO::MYSQL_ATTR_READ_DEFAULT_GROUP` are not defined if MySQL support in PDO is compiled with mysqlnd.
- The trailing / has been removed from the SplFileInfo class and other related directory classes.
- The __toString magic method can no longer accept arguments.
- The magic methods __get, __set, __isset, __unset, and __call must always be public and can no longer be static. Method signatures are now enforced.
- The __call magic method is now invoked on access to private and protected methods.
- func_get_arg(), func_get_args() and func_num_args() can no longer be called from the outermost scope of a file that has been included by calling include() or require() from within a function in the calling file.

The following keywords are now reserved and may not be used in function, class, etc. names.

- goto
- namespace

What has changed in PHP 5.3.x
New features
Migrating from PHP 5.2.x to PHP 5.3.x
PHP Manual