#1575 - Refresh our PHP base line

This is a spacer post for a website comment topic. The content this topic relates to: #1575 - Refresh our PHP base line
Maybe custom PHP 7 build after all

PHP 5.3
=======

Constants can now be declared outside a class using the const keyword.

Added lambda functions and closures. (Christian Seiler, Dmitry)

Added "jump label" operator (limited "goto"). (Dmitry, Sara)

Added NOWDOC syntax. (Gwynne Raskind, Stas, Dmitry)

Added HEREDOC syntax with double quotes. (Lars Strojny, Felipe)

Added "?:" operator. (Marcus)

Added optional parameter to ini_get_all() to only retrieve the current value. (Hannes)

Added 3rd optional parameter to parse_ini_file() to specify the scanning mode of INI_SCANNER_NORMAL or INI_SCANNER_RAW. In raw mode option values and section values are treated as-is.

Added context parameter for copy() function. (Sara)

Added "params" as optional parameter for stream_context_create(). (Sara)

Added stream_supports_lock() function. (Benjamin Schulz)

Deprecated define_syslog_variables(). (Kalle)

date_parse_from_format(): Parse date/time strings according to a format.

date_create_from_format()/DateTime::createFromFormat(): Create a date/time object by parsing a date/time string according to a given format.

date_get_last_errors()/DateTime::getLastErrors(): Return a list of warnings and errors that were found while parsing a date/time string through:

Added array_replace() and array_replace_recursive() functions. (Matt)

Added an optional parameter to strstr() and stristr() for retrieval of either the part of haystack before or after first occurrence of needle. (Johannes, Felipe)

Added optional escape character parameter to fgetcsv(). (David Soria Parra)

Added lcfirst() function. (David C)

Added native support for asinh(), acosh(), atanh(), log1p() and expm1(). (Kalle)

Added timezone_version_get() to retrieve the version of the used timezone database. (Derick)

Added header_remove() function. (chsc at peytz dot dk, Arnaud)

Added stream_context_get_params() function. (Arnaud)

Added parse_ini_string() function. (grange at lemonde dot fr, Arnaud)

Added str_getcsv() function. (Sara)

Added stream_context_set_default() function. (Davey Shafik)

Added optional "is_xhtml" parameter to nl2br() which makes the function output <br> when false and
when true (FR #34381). (Kalle)

Added function preg_filter() that does grep and replace in one go. (Marcus)

Added the ability for json_decode() to take a user specified depth. (Scott)

Added json_last_error() to return any error information from json_decode(). (Scott)

Added stream_resolve_include_path(). (Mikko)

Added realpath_cache_size() and realpath_cache_get() functions. (Stas)

Added a 3rd parameter to get_html_translation_table. It now takes a charset hint, like htmlentities et al. (Gustavo)

Implemented FR #52173, added functions pcntl_get_last_error() and pcntl_strerror(). (nick dot telford at gmail dot com, Arnaud)

PHP 5.4
=======

Added getimagesizefromstring

Added http_response_code

Function array dereferencing has been added, e.g. foo()[0].

Safe mode gone

register_globals gone

magic_quotes_* gone

Added short array syntax support ([1,2,3]), see UPGRADING guide for full details.

Added binary numbers format (0b001010).

Added support for Traits.

Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned.

Added hex2bin() function.

Changed array_combine() to return empty array instead of FALSE when both parameter arrays are empty. #34857.

Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions (sort, rsort, ksort, krsort, asort, arsort and array_multisort). #55158.

Added optional second argument for assert() to specify custom message.

PHP 5.5
=======

Added imagepalettetotruecolor

Added password_hash, password_get_info, password_needs_rehash, password_verify

Added array_column

Added generators and coroutines.

Added "finally" keyword.

Added simplified password hashing API.

Added support for constant array/string dereferencing.

Added support for using empty() on the result of function calls and other expressions

Added support for list in foreach

Improved fputcsv() to allow specifying escape character.

Flipping support using the new imageflip() function.

Advanced cropping support using the imagecrop() & imagecropauto() functions.

WebP read and write support using imagecreatefromwebp() & imagewebp() respectively.

PHP 5.6
=======

Variadic functions via ...

Argument unpacking via ...

Added constant scalar expressions syntax.

Added dedicated syntax for variadic functions.

Added support for argument unpacking to complement the variadic syntax.

Added an exponentiation operator (**).

Added use function and use const..

Added a function for timing attack safe string comparison.

PHP 7
=====

strict typing

declaring strict typing

Added intdiv() function.

Added preg_replace_callback_array function.

Added ?? operator.

Added <=> operator.

Constant arrays using define() ΒΆ

Anonymous classes

Filtered unserialize()

Added error_clear_last() function.

Added socket_export_stream() function for getting a stream compatible resource from a socket resource.

random_bytes()

random_int().
I've updated ocProducts PHP to PHP7 :).

Now we're climbing up through all these old PHP versions, adding CQC (code quality checker) support and using appropriate features. 5.2 and 5.3 now implemented.
We'll be updating to PHP 5.6 as the minimum version, as PHP 5.5 is already EOL. We will not be implementing anything for PHP7 for quite some time (the end of 2018 is when PHP 5.6 is EOL).
Temporary notes...

Make unit tests pass
Close issue, open new tidied one

I'll mark this resolved, and open a new issue for PHP7.

It's worked out a little differently, better though.

The v11 branch is now PHP 5.6+, making use of many new features.
ocProducts PHP is now based on PHP7 and maintained in github.
The Code Quality Checker supports up to PHP 5.6.
0 guests and 0 members have recently viewed this.