[DOC-CVS] [doc-en] master: Add PHP 8.4.0 changelog entries for Intl and MBString pages (#5365)

[email protected] (Louis-Arnaud via GitHub) Sun, 7 Jun 2026 17:53:24 +0000
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: Louis-Arnaud (lacatoire)
Committer: GitHub (web-flow)
Pusher: jordikroon
Date: 2026-06-07T19:53:21+02:00

Commit: https://github.com/php/doc-en/commit/1be57c2d7d7306b6167a4305059fe1abe8911699
Raw diff: https://github.com/php/doc-en/commit/1be57c2d7d7306b6167a4305059fe1abe8911699.diff

Add PHP 8.4.0 changelog entries for Intl and MBString pages (#5365)

* Add PHP 8.4.0 changelog entries for Intl and MBString pages

Add missing 8.4.0 changelog entries to document:
- mb_substr: character index handling on invalid strings
- mb_strcut: consistency improvement on invalid UTF-8/UTF-16
- idn_to_ascii: ValueError on empty domain and invalid variant
- idn_to_utf8: ValueError on empty domain and invalid variant

Co-authored-by: Jordi Kroon <[email protected]>

Changed paths:
  M  reference/intl/idn/idn-to-ascii.xml
  M  reference/intl/idn/idn-to-utf8.xml
  M  reference/mbstring/functions/mb-strcut.xml
  M  reference/mbstring/functions/mb-substr.xml


Diff:

diff --git a/reference/intl/idn/idn-to-ascii.xml b/reference/intl/idn/idn-to-ascii.xml
index 6e9c212cd03b..c97d8bd51355 100644
--- a/reference/intl/idn/idn-to-ascii.xml
+++ b/reference/intl/idn/idn-to-ascii.xml
@@ -90,6 +90,21 @@
       </row>
      </thead>
      <tbody>
+      <row>
+       <entry>8.4.0</entry>
+       <entry>
+        Now throws a <exceptionname>ValueError</exceptionname>
+        if the <parameter>domain</parameter> parameter is empty.
+       </entry>
+      </row>
+      <row>
+       <entry>8.4.0</entry>
+       <entry>
+        Now throws a <exceptionname>ValueError</exceptionname>
+        if the <parameter>variant</parameter> parameter is not
+        <constant>INTL_IDNA_VARIANT_UTS46</constant>.
+       </entry>
+      </row>
       <row>
        <entry>7.4.0</entry>
        <entry>
diff --git a/reference/intl/idn/idn-to-utf8.xml b/reference/intl/idn/idn-to-utf8.xml
index 7c7ae6fa089a..258482f9189e 100644
--- a/reference/intl/idn/idn-to-utf8.xml
+++ b/reference/intl/idn/idn-to-utf8.xml
@@ -90,6 +90,21 @@
       </row>
      </thead>
      <tbody>
+      <row>
+       <entry>8.4.0</entry>
+       <entry>
+        Now throws a <exceptionname>ValueError</exceptionname>
+        if the <parameter>domain</parameter> parameter is empty.
+       </entry>
+      </row>
+      <row>
+       <entry>8.4.0</entry>
+       <entry>
+        Now throws a <exceptionname>ValueError</exceptionname>
+        if the <parameter>variant</parameter> parameter is not
+        <constant>INTL_IDNA_VARIANT_UTS46</constant>.
+       </entry>
+      </row>
       <row>
        <entry>7.4.0</entry>
        <entry>
diff --git a/reference/mbstring/functions/mb-strcut.xml b/reference/mbstring/functions/mb-strcut.xml
index d6c6a719cee1..9bcee3884b35 100644
--- a/reference/mbstring/functions/mb-strcut.xml
+++ b/reference/mbstring/functions/mb-strcut.xml
@@ -107,6 +107,12 @@
      </row>
     </thead>
     <tbody>
+     <row>
+      <entry>8.4.0</entry>
+      <entry>
+       The behavior is more consistent now on invalid <literal>UTF-8</literal> and <literal>UTF-16</literal> strings.
+      </entry>
+     </row>
      &mbstring.changelog.encoding-nullable;
     </tbody>
    </tgroup>
diff --git a/reference/mbstring/functions/mb-substr.xml b/reference/mbstring/functions/mb-substr.xml
index 8ce983f30fd0..47e63dea6a31 100644
--- a/reference/mbstring/functions/mb-substr.xml
+++ b/reference/mbstring/functions/mb-substr.xml
@@ -97,6 +97,15 @@
      </row>
     </thead>
     <tbody>
+     <row>
+      <entry>8.4.0</entry>
+      <entry>
+       On invalid strings (those with encoding errors),
+       character indices are now interpreted in the same manner as most
+       other mbstring functions. This means that character indices returned
+       by <function>mb_strpos</function> can be passed directly.
+      </entry>
+     </row>
      &mbstring.changelog.encoding-nullable;
     </tbody>
    </tgroup>