Commit 256c6284142 for php
commit 256c6284142027d29ea1ca65737b4cba7f5ca971
Author: Jordi Kroon <jkroon@onyourmarks.agency>
Date: Mon Sep 28 19:40:11 2026 +0000
Document missing deprecation entries for PHP 8.6 (#23972)
Document the identifier deprecations introduced by #23615 and #23709 in
UPGRADING and NEWS so they are covered by the PHP 8.6 migration guide.
Cover the additional uses of "_" and the deprecation of "let" and "is" as
identifiers. Place the NEWS entries in the current PHP 8.6 release section.
Closes #23972
diff --git a/NEWS b/NEWS
index 2bc21110f91..cd01751fc78 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,10 @@ PHP NEWS
. Fixed GH-23921 (Fibers start with error_reporting = 0 when the
error_reporting INI directive is not set). (Girgias)
. Fixed GH-23980 (ZEND_ASSERT violation @ ZEND_INCLUDE_OR_EVAL). (ndossche)
+ . Deprecated using "let" or "is" as the name of a class, function, or
+ constant, and as an alias in class_alias() and use declarations. (Girgias)
+ . Deprecated using "_" as a constant name and as an alias for a class or
+ constant in use declarations. (Girgias)
- FFI:
. Fixed crashes with FFI callbacks created from __call() trampolines
diff --git a/UPGRADING b/UPGRADING
index 63a1f5f30fb..0e4a5288d68 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -555,6 +555,16 @@ PHP 8.6 UPGRADE NOTES
RFC: https://wiki.php.net/rfc/deprecate-return-value-from-construct
. Naming a function readonly is now deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_the_possibility_to_name_a_function_readonly
+ . Using "let" or "is" as the name of a class, interface, trait, enum,
+ function, or constant (including via define()), as the alias passed to
+ class_alias(), or as the alias name in a use, use function, or use const
+ declaration is now deprecated.
+ RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_using_let_as_an_identifier
+ RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_using_is_as_an_identifier
+ . Using "_" as a constant name (via const or define()), or as the alias
+ name for a class or constant in a use declaration, is now deprecated.
+ This extends the PHP 8.4 deprecation of "_" as a class name.
+ RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_using_as_a_constant_and_compile_time_alias
. Passing a 3rd argument to define() is now deprecated.
RFC: https://wiki.php.net/rfc/deprecations_php_8_6#deprecate_define_with_case_insensitive_being_specified
. Calling is_a() or is_subclass_of() with a string as the first argument