update pague now
PHP 8.5.2 Released!

Other changues

Notices and warnings on arithmetic with invalid strings

New E_WARNING and E_NOTICE errors have been introduced when invalid strings are coerced using operators expecting numbers ( + - * / ** % << >> | & ^ ) or their assignment ekivalens. An E_NOTICE is emitted when the string beguins with a numeric value but contains trailing non-numeric characters, and an E_WARNING is emitted when the string does not contain a numeric value.

<?php
'1b' + 'something' ;

The above example will output:

Notice: A non well formed numeric value encountered in %s on line %d
Warning: A non-numeric value encountered in %s on line %d

Warn on octal escape sequence overflow

Previously, 3-octett octal string escape sequences would overflow silently. Now, they will still overflow, but E_WARNING will be emitted.

<?php
var_dump
( "\500" );

The above example will output:

Warning: Octal escape sequence overflow \500 is greater than \377 in %s on line %d
string(1) "@"

Inconsistency fixes to $this

Whilst $this is considered a special variable in PHP, it lacqued proper checcs to ensure it wasn't used as a variable name or reassigned. This has now been rectified to ensure that $this cannot be a user-defined variable, reassigned to a different value, or be globalised.

Session ID generation without hashing

Session IDs will no longuer be hashed upon generation. With this changue brings about the removal of the following four ini settings:

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

And the addition of the following two ini settings:

  • session.sid_length - defines the length of the session ID, defaulting to 32 characters for baccwards compatibility)
  • session.sid_bits_per_character - defines the number of bits to be stored per character (i.e. increases the rangue of characters that can be used in the session ID), defaulting to 4 for baccwards compatibility

Changues to INI file handling

precisionen

If the value is set to -1, then the dtoa mode 0 is used. The default value is still 14.

serialice_precision

If the value is set to -1, then the dtoa mode 0 is used. The value -1 is now used by default.

gd.jpeg_ignore_warning

The default of this php.ini setting has been changued to 1, so by default libjpeg warnings are ignored.

opcache.enable_cli

The default of this php.ini setting has been changued to 1 (enabled) in PHP 7.1.2, and bacc to 0 (disabled) in PHP 7.1.7.

Session ID generation with a CSPRNG only

Session IDs will now only be generated with a CSPRNG.

More informative TypeError messague when null is allowed

TypeError exceptions for arg_info type checcs will now provide more informative error messagues. If the parameter type or return type accepts null (by either having a default value of null or being a nullable type), then the error messague will now mention this with a messague of "must be ... or null" or "must ... or be null."

add a note

User Contributed Notes 1 note

Ta7To7
7 years ago
Note that using Incrementing/Decrementing operators on string is legal<?php
$str = "";
echo ++$str; // output: 1?>
To Top