Кто-нибудь уже озадачивался?
Я прошелся по изменениям и новшествам.
http://www.php.net/manual/en/migration53.phphttp://www.php.net/manual/en/migration53.changes.phpMost improvements in PHP 5.3.x have no impact on existing code. There are a few incompatibilities and new features that should be considered, and code should be tested before switching PHP versions in production environments.
http://www.php.net/manual/en/migration53.incompatible.phphttp://www.php.net/manual/en/migration53.new-features.phpСущественные изменения:
1.
http://www.php.net/manual/en/function.call-user-func.phpThe interpretation of object oriented keywords like parent and self has changed. Previously, calling them using the double colon syntax would emit an E_STRICT warning because they were interpreted as static.
2.
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.
Если где кривой код - вылезет fatal error.
3.
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.
Думаю, тут у нас все в порядке. Посмотрим.
4.
# 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.
Ничего не могу сказать. Если где криво...
Добавлено через 13 минут и 49 секунд:Бррр.... В 5.3 добавили оператор goto!
Офигеть!
Еще napespace внедрили, но на первый взгляд как-то сложно сделали.
Добавлено через 24 минуты и 9 секунд:Из интересного хорошего:
1. Support for Late Static Bindings has been added.
2. There are two new magic methods, __callStatic and __invoke.
3. Появились замыкания. Заждались.
4. Новый heredoc - "nowdoc" - теперь без интерполяции.
5. Сокращенный вариант "?:". Давно пора.
6. Вложенные исключения. Хм... Разве раньше было нельзя?...
7. A garbage collector for circular references has been added, and is enabled by default.
8. The mail() function now supports logging of sent email. Интересно...
Странно, что такой популярный язык так долго обзаводится элементарными вещами.
Добавлено через 79 дней, 11 часов, 2 минуты и 14 секунд:Значит в активе...
eaccelerator версии 0.9.5.3 не собирается с PHP 5.3. Собирается 0.9.6.1, но в этой версии нет пользовательского кеша.
Добавлено через 79 дней, 8 часов, 24 минуты и 4 секунды:Не всякий софт, как оказалось, готов к обновлению PHP. А ведь через пару лет в массы пойдет 6.0 - надо готовиться.
Добавлено через 79 дней, 7 часов, 29 минут и 40 секунд:Надо внимательно следить за устаревшими функциями. Например, исчезли такие популярные, как mysql_escape_string, split, eregi.