HHVM 4.117
HHVM 4.117 is released! This release marks the end of support for 4.111; HHVM 4.112–4.116 remain supported, as do the 4.80 and 4.102 LTS releases.
Highlights
HH\FIXME\UNSAFE_CAST
can now be used as a slightly safer alternative toHH_FIXME
comments.
Breaking Changes
- The
Stringish
interface no longer declares a__toString()
method. This method is now declared only on theStringishObject
interface (added in HHVM 4.115).- The declaration of
__toString()
onStringish
was misleading, sincestring
is a subtype ofStringish
but trying to call any method on astring
value results in a runtime error.
- The declaration of
- Various legacy array compatibility INI options were removed (they had no
effect or didn’t work as expected since
HHVM 4.103):
hhvm.raise_array_serialization_notices
hhvm.hack_arr_compat_intish_cast_notices
hhvm.hack_arr_compat_notices
hhvm.array_provenance
Future Changes
- As announced
last week,
in the future, the “fuzzy” comparison operators
==
and!=
, as well asswitch
statements, will no longer treat values of different types as equal.- The INI option
hhvm.notice_on_coerce_for_eq
now supports a new value,3
. This enables the new behavior, i.e. comparing values of different types will returnfalse
. We recommend setting this option to1
(raise notices) or2
(throw exceptions) first to catch any comparisons that would be affected.
- The INI option