<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.php.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.php.net/feed.php">
        <title>PHP Wiki</title>
        <description></description>
        <link>https://wiki.php.net/</link>
        <image rdf:resource="https://wiki.php.net/_media/wiki/dokuwiki.svg" />
       <dc:date>2026-10-19T12:43:48+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/query_params?rev=1792411151&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc?rev=1792180116&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/pdo_binary?rev=1792180053&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/case_insensitive_ini_get_all?rev=1792169182&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/throw_error_for_invalid_characters_for_number_base?rev=1792138390&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/reldateformatter?rev=1791961353&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/start?rev=1791930191&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/rfc/json_comments_trailing_commas?rev=1791919442&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Asurface3d.png&amp;ns=rfc&amp;rev=1784468890&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Ascaled_on_load_rotate.png&amp;ns=rfc&amp;rev=1784270844&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Awatermarked.png&amp;ns=rfc&amp;rev=1784260645&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Ascale_entropy_visual_check.png&amp;ns=rfc&amp;rev=1783998723&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atextcurve.png&amp;ns=rfc&amp;rev=1783692533&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Agradient_art.png&amp;ns=rfc&amp;rev=1783319544&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atiger.png&amp;ns=rfc&amp;rev=1783319523&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Agradient_operators.png&amp;ns=rfc&amp;rev=1783319496&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atrue_async%3Acoroutine-lifecycle.svg&amp;ns=rfc%3Atrue_async&amp;rev=1744788286&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atrue_async%3Asupervisor.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atrue_async%3Aexception_flow.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
                <rdf:li rdf:resource="https://wiki.php.net/?image=rfc%3Atrue_async%3Aresume_and_notifier.svg&amp;ns=rfc%3Atrue_async&amp;rev=1739695205&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.php.net/_media/wiki/dokuwiki.svg">
        <title>PHP Wiki</title>
        <link>https://wiki.php.net/</link>
        <url>https://wiki.php.net/_media/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.php.net/rfc/query_params?rev=1792411151&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-19T11:59:11+00:00</dc:date>
        <dc:creator>kocsismate (kocsismate@undisclosed.example.com)</dc:creator>
        <title>query_params</title>
        <link>https://wiki.php.net/rfc/query_params?rev=1792411151&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/19 07:58&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 165:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 165:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function toRfc3986String(): string {}&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function toRfc3986String(): string {}&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;(): string {}&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;(): string {}&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function __serialize(): array {}&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; public function __serialize(): array {}&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 258:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 258:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;$url = new Uri\WhatWg\Url(&amp;quot;https://example.com/&amp;quot;);&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;$url = new Uri\WhatWg\Url(&amp;quot;https://example.com/&amp;quot;);&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;$url = $url-&amp;gt;withQuery($params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;());&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160;&amp;#160;&lt;/strong&gt;// Success: the query is automatically percent-encoded to &amp;quot;%23foo=bar&amp;quot;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;$url = $url-&amp;gt;withQuery($params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;());&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160;&lt;/strong&gt;// Success: the query is automatically percent-encoded to &amp;quot;%23foo=bar&amp;quot;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 331:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 331:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;var_dump($params-&amp;gt;getFirst(&amp;quot;baz&amp;quot;));&amp;#160; &amp;#160; &amp;#160; &amp;#160; // string(3) &amp;quot;%GG&amp;quot;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;var_dump($params-&amp;gt;getFirst(&amp;quot;baz&amp;quot;));&amp;#160; &amp;#160; &amp;#160; &amp;#160; // string(3) &amp;quot;%GG&amp;quot;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;/strong&gt;// foo=%25&amp;amp;bar=%252&amp;amp;baz=%25GG&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;&lt;/strong&gt;// foo=%25&amp;amp;bar=%252&amp;amp;baz=%25GG&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 356:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 356:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;var_dump($params-&amp;gt;getFirst(&amp;quot;bar&amp;quot;));&amp;#160; &amp;#160; &amp;#160; &amp;#160; // string(2) &amp;quot;é&amp;quot;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;var_dump($params-&amp;gt;getFirst(&amp;quot;bar&amp;quot;));&amp;#160; &amp;#160; &amp;#160; &amp;#160; // string(2) &amp;quot;é&amp;quot;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;/strong&gt;// foo=%EF%BF%BD&amp;amp;bar=%C3%A9&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;&lt;/strong&gt;// foo=%EF%BF%BD&amp;amp;bar=%C3%A9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 492:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 492:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc1866String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc1866String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc3986String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc3986String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; // foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;#160;&lt;/strong&gt;// foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;/strong&gt;// foo=bar&amp;amp;foo=baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;All &amp;#039;&amp;#039;to*String()&amp;#039;&amp;#039; methods (&amp;#039;&amp;#039;Uri\QueryParams::toRfc1866String()&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Uri\QueryParams::toRfc3986String()&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Uri\QueryParams::&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;()&amp;#039;&amp;#039;) automatically percent-encode their output according to the rules outlined in the [[https://wiki.php.net/rfc/query_params#percent-encoding_and_decoding|previous section]], otherwise it would be possible that an invalid output is returned.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;All &amp;#039;&amp;#039;to*String()&amp;#039;&amp;#039; methods (&amp;#039;&amp;#039;Uri\QueryParams::toRfc1866String()&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Uri\QueryParams::toRfc3986String()&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Uri\QueryParams::&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;()&amp;#039;&amp;#039;) automatically percent-encode their output according to the rules outlined in the [[https://wiki.php.net/rfc/query_params#percent-encoding_and_decoding|previous section]], otherwise it would be possible that an invalid output is returned.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 501:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 501:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc1866String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;// foo%5B%5D=bar+baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc1866String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;// foo%5B%5D=bar+baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc3986String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;// foo%5B%5D=bar%20baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;echo $params-&amp;gt;toRfc3986String();&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;// foo%5B%5D=bar%20baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;/strong&gt;// foo%5B%5D=bar+baz&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;echo $params-&amp;gt;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;();&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; &amp;#160;&amp;#160;&lt;/strong&gt;// foo%5B%5D=bar+baz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 546:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 546:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;/code&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#039;&amp;#039;withQueryParams()&amp;#039;&amp;#039; creates a new URI or URL with its entire query component replaced. It uses &amp;#039;&amp;#039;toRfc3986String()&amp;#039;&amp;#039; for &amp;#039;&amp;#039;Uri\Rfc3986\Uri&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;()&amp;#039;&amp;#039; for &amp;#039;&amp;#039;Uri\WhatWg\Url&amp;#039;&amp;#039;. Passing &amp;#039;&amp;#039;null&amp;#039;&amp;#039; removes the query component.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#039;&amp;#039;withQueryParams()&amp;#039;&amp;#039; creates a new URI or URL with its entire query component replaced. It uses &amp;#039;&amp;#039;toRfc3986String()&amp;#039;&amp;#039; for &amp;#039;&amp;#039;Uri\Rfc3986\Uri&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;()&amp;#039;&amp;#039; for &amp;#039;&amp;#039;Uri\WhatWg\Url&amp;#039;&amp;#039;. Passing &amp;#039;&amp;#039;null&amp;#039;&amp;#039; removes the query component.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 564:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 564:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Although preserving the original query string where possible was an important design goal, parsing and recomposing cannot always reproduce the original query string. &amp;#039;&amp;#039;QueryParams&amp;#039;&amp;#039; stores decoded parameter names and values, so the original percent-encoded representation is not retained. For example, &amp;#039;&amp;#039;x=/&amp;#039;&amp;#039; and &amp;#039;&amp;#039;x=%2F&amp;#039;&amp;#039; both produce the same parameter list, containing the name &amp;#039;&amp;#039;&amp;quot;x&amp;quot;&amp;#039;&amp;#039; and the value &amp;#039;&amp;#039;&amp;quot;/&amp;quot;&amp;#039;&amp;#039;, and recomposition cannot distinguish between these original representations.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Although preserving the original query string where possible was an important design goal, parsing and recomposing cannot always reproduce the original query string. &amp;#039;&amp;#039;QueryParams&amp;#039;&amp;#039; stores decoded parameter names and values, so the original percent-encoded representation is not retained. For example, &amp;#039;&amp;#039;x=/&amp;#039;&amp;#039; and &amp;#039;&amp;#039;x=%2F&amp;#039;&amp;#039; both produce the same parameter list, containing the name &amp;#039;&amp;#039;&amp;quot;x&amp;quot;&amp;#039;&amp;#039; and the value &amp;#039;&amp;#039;&amp;quot;/&amp;quot;&amp;#039;&amp;#039;, and recomposition cannot distinguish between these original representations.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;Moreover, parsing and recomposing a WHATWG URL query string does not necessarily preserve its original string representation. The WHATWG URL specification defines different percent-encoding rules for URL query components and &amp;#039;&amp;#039;application/x-www-form-urlencoded&amp;#039;&amp;#039; data. For example, a space represented as &amp;#039;&amp;#039;%20&amp;#039;&amp;#039; in the original URL becomes &amp;#039;&amp;#039;+&amp;#039;&amp;#039; when recomposed by &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;()&amp;#039;&amp;#039;:&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;Moreover, parsing and recomposing a WHATWG URL query string does not necessarily preserve its original string representation. The WHATWG URL specification defines different percent-encoding rules for URL query components and &amp;#039;&amp;#039;application/x-www-form-urlencoded&amp;#039;&amp;#039; data. For example, a space represented as &amp;#039;&amp;#039;%20&amp;#039;&amp;#039; in the original URL becomes &amp;#039;&amp;#039;+&amp;#039;&amp;#039; when recomposed by &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;()&amp;#039;&amp;#039;:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;lt;code php&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 618:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 618:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Therefore, callers should pass decoded names and values to these methods. For example, &amp;#039;&amp;#039;$params-&amp;gt;append(&amp;quot;foo[]&amp;quot;, &amp;quot;abc&amp;quot;)&amp;#039;&amp;#039; produces the expected &amp;quot;&amp;#039;&amp;#039;foo%5B%5D=abc&amp;#039;&amp;#039;&amp;quot; query string when recomposed.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Therefore, callers should pass decoded names and values to these methods. For example, &amp;#039;&amp;#039;$params-&amp;gt;append(&amp;quot;foo[]&amp;quot;, &amp;quot;abc&amp;quot;)&amp;#039;&amp;#039; produces the expected &amp;quot;&amp;#039;&amp;#039;foo%5B%5D=abc&amp;#039;&amp;#039;&amp;quot; query string when recomposed.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#039;&amp;#039;append()&amp;#039;&amp;#039; and &amp;#039;&amp;#039;set()&amp;#039;&amp;#039; also preserve the bytes of string parameter names and values without UTF-8 validation or replacement. Invalid UTF-8 sequences remain in the parameter list: RFC 1866 and RFC 3986-based recomposition methods percent-encode their original bytes, while &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgString&lt;/strong&gt;()&amp;#039;&amp;#039; replaces them with &amp;#039;&amp;#039;U+FFFD&amp;#039;&amp;#039; when producing its output, leaving the stored data unchanged.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#039;&amp;#039;append()&amp;#039;&amp;#039; and &amp;#039;&amp;#039;set()&amp;#039;&amp;#039; also preserve the bytes of string parameter names and values without UTF-8 validation or replacement. Invalid UTF-8 sequences remain in the parameter list: RFC 1866 and RFC 3986-based recomposition methods percent-encode their original bytes, while &amp;#039;&amp;#039;&lt;strong class=&quot;diff-mark&quot;&gt;toWhatWgUrlString&lt;/strong&gt;()&amp;#039;&amp;#039; replaces them with &amp;#039;&amp;#039;U+FFFD&amp;#039;&amp;#039; when producing its output, leaving the stored data unchanged.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Removing parameters is possible via either the &amp;#039;&amp;#039;delete()&amp;#039;&amp;#039; or the &amp;#039;&amp;#039;deleteValue()&amp;#039;&amp;#039; method: the former one removes all occurrences of the given parameter name, while the latter one removes all occurrences of a parameter if the given name and value both match it, as demonstrated below:&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Removing parameters is possible via either the &amp;#039;&amp;#039;delete()&amp;#039;&amp;#039; or the &amp;#039;&amp;#039;deleteValue()&amp;#039;&amp;#039; method: the former one removes all occurrences of the given parameter name, while the latter one removes all occurrences of a parameter if the given name and value both match it, as demonstrated below:&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc?rev=1792180116&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-16T19:48:36+00:00</dc:date>
        <dc:creator>calvinb (calvinb@undisclosed.example.com)</dc:creator>
        <title>rfc</title>
        <link>https://wiki.php.net/rfc?rev=1792180116&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/16 16:54&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 21:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 21:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This section is for RFCs that have been announced on the PHP &amp;quot;internals&amp;quot; mail list.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This section is for RFCs that have been announced on the PHP &amp;quot;internals&amp;quot; mail list.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * [[rfc/pdo_binary|PDO binary parameter support]] (Created 2026-09-29, Discussion started 2026-10-16)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:case_insensitive_ini_get_all|Case-insensitive extension names in ini_get_all()]] (Created 2026-10-17, Discussion started 2026-10-17)&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:case_insensitive_ini_get_all|Case-insensitive extension names in ini_get_all()]] (Created 2026-10-17, Discussion started 2026-10-17)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:json_comments_trailing_commas|Opt-in JSON Comments and Trailing Commas]] (Created 2026-10-13, Discussion started 2026-10-13)&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:json_comments_trailing_commas|Opt-in JSON Comments and Trailing Commas]] (Created 2026-10-13, Discussion started 2026-10-13)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 89:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 90:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This section is for early drafts of RFCs that have NOT been announced on the PHP &amp;quot;internals&amp;quot; mail list.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;This section is for early drafts of RFCs that have NOT been announced on the PHP &amp;quot;internals&amp;quot; mail list.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * [[rfc/pdo_binary| PDO binary parameter support]] (Created 2026-09-29)&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc/array_str_contains|Add array_str_contains() function to standard library]] - Sepehr Mahmoudi&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc/array_str_contains|Add array_str_contains() function to standard library]] - Sepehr Mahmoudi&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:deprecations_php_8_7|Deprecations for PHP 8.7]] (Created 2026-08-12)&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * [[rfc:deprecations_php_8_7|Deprecations for PHP 8.7]] (Created 2026-08-12)&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc/pdo_binary?rev=1792180053&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-16T19:47:33+00:00</dc:date>
        <dc:creator>calvinb (calvinb@undisclosed.example.com)</dc:creator>
        <title>pdo_binary</title>
        <link>https://wiki.php.net/rfc/pdo_binary?rev=1792180053&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/06 20:53&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== PHP RFC: PDO binary parameter support ======&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== PHP RFC: PDO binary parameter support ======&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Version: 0.&lt;strong class=&quot;diff-mark&quot;&gt;3&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Version: 0.&lt;strong class=&quot;diff-mark&quot;&gt;4&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Date: 2026-09-29&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Date: 2026-09-29&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Author: Calvin Buckley, calvinb@php.net&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Author: Calvin Buckley, calvinb@php.net&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Status:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;Draft&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Status:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;Under Discussion&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/11674&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/11674&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Discussion thread:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;tbd&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Discussion thread:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;https://news-web.php.net/php.internals/132876&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Voting thread: tbd&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Voting thread: tbd&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 178:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 178:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Changelog =====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Changelog =====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * 0.4: Under Discussion&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.3: Minor changes&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.3: Minor changes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.2: Suggestions on clarification on interactions (thanks to Saki)&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.2: Suggestions on clarification on interactions (thanks to Saki)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.1: Created.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * 0.1: Created.&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc/case_insensitive_ini_get_all?rev=1792169182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-16T16:46:22+00:00</dc:date>
        <dc:creator>weilindu (weilindu@undisclosed.example.com)</dc:creator>
        <title>case_insensitive_ini_get_all - update status</title>
        <link>https://wiki.php.net/rfc/case_insensitive_ini_get_all?rev=1792169182&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/16 16:46&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 5:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 5:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Status: Under Discussion&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Status: Under Discussion&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: TBD&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: TBD&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Discussion thread: [[https://externals.io/message/132226|Initial discussion]]&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Discussion thread: [[https://externals.io/message/132226|Initial discussion&lt;strong class=&quot;diff-mark&quot;&gt;]] [[https://news-web.php.net/php.internals/132875|Official RFC thread&lt;/strong&gt;]]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Introduction =====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Introduction =====&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc/throw_error_for_invalid_characters_for_number_base?rev=1792138390&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-16T08:13:10+00:00</dc:date>
        <dc:creator>sjoerd (sjoerd@undisclosed.example.com)</dc:creator>
        <title>throw_error_for_invalid_characters_for_number_base</title>
        <link>https://wiki.php.net/rfc/throw_error_for_invalid_characters_for_number_base?rev=1792138390&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/16 07:38&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 11:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 11:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; * https://news-web.php.net/php.internals/105740&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; * https://news-web.php.net/php.internals/105740&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; * https://news-web.php.net/php.internals/132379&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; &amp;#160; * https://news-web.php.net/php.internals/132379&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Voting thread:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;tbd&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Voting thread:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;https://news-web.php.net/php.internals/132873&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Introduction =====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Introduction =====&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc/reldateformatter?rev=1791961353&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-14T07:02:33+00:00</dc:date>
        <dc:creator>weilindu (weilindu@undisclosed.example.com)</dc:creator>
        <title>reldateformatter - update status</title>
        <link>https://wiki.php.net/rfc/reldateformatter?rev=1791961353&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/07 16:10&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 3:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 3:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Date: 2026-08-09&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Date: 2026-08-09&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Author: Weilin Du &amp;lt;weilindu@php.net&amp;gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Author: Weilin Du &amp;lt;weilindu@php.net&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Status:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;Under Discussion&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Status:&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;Voting&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/23514&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/23514&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Discussion thread: https://externals.io/message/132187&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Discussion thread: https://externals.io/message/132187&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/start?rev=1791930191&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-13T22:23:11+00:00</dc:date>
        <dc:creator>svpernova09 (svpernova09@undisclosed.example.com)</dc:creator>
        <title>start - old revision restored (2026/09/04 09:06)</title>
        <link>https://wiki.php.net/start?rev=1791930191&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/13 22:30&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== The PHP.net wiki ======&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;====== The PHP.net wiki ======&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;Welcome to the PHP Wiki pages! This wiki is mainly used to track internal development of the PHP project, so feel free to scour the wiki and join the project&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;Welcome to the PHP Wiki pages! This wiki is mainly used to track internal development of the PHP project, so feel free to scour the wiki and join the project&lt;strong class=&quot;diff-mark&quot;&gt;.&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;You can view a list of [[/?do=recent|recently changed pages]].&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;You can view a list of [[/?do=recent|recently changed pages]].&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/rfc/json_comments_trailing_commas?rev=1791919442&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-13T19:24:02+00:00</dc:date>
        <dc:creator>otar (otar@undisclosed.example.com)</dc:creator>
        <title>json_comments_trailing_commas</title>
        <link>https://wiki.php.net/rfc/json_comments_trailing_commas?rev=1791919442&amp;do=diff</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;2026/10/13 18:46&lt;/th&gt;&lt;th colspan=&quot;2&quot; width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 71:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 71:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;The parser discards each comment, so a comment has no effect on the result. These rules apply:&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;The parser discards each comment, so a comment has no effect on the result. These rules apply:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A comment can occur at each position where JSON permits whitespace: before a value, after a value, and between two tokens.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A comment can occur at each position where JSON permits whitespace: before a value, after a value, and between two tokens.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * A comment cannot occur inside a token. For example, &amp;#039;&amp;#039;%%tr/**/ue%%&amp;#039;&amp;#039; and &amp;#039;&amp;#039;%%-/**/1%%&amp;#039;&amp;#039; cause a syntax error.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * A comment cannot occur inside a token. For example, &amp;#039;&amp;#039;%%tr/**/ue%%&amp;#039;&amp;#039; and &amp;#039;&amp;#039;%%-/**/1%%&amp;#039;&amp;#039; cause a syntax error&lt;strong class=&quot;diff-mark&quot;&gt;. A comment can directly follow a token, for example &amp;#039;&amp;#039;%%1.5/*note*/%%&amp;#039;&amp;#039;&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Text inside a string is never a comment. &amp;#039;&amp;#039;%%&amp;quot;https://example.com/*&amp;quot;%%&amp;#039;&amp;#039; is a normal string.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Text inside a string is never a comment. &amp;#039;&amp;#039;%%&amp;quot;https://example.com/*&amp;quot;%%&amp;#039;&amp;#039; is a normal string.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A line comment ends at a line feed (LF), at a carriage return (CR), or at CR LF. U+2028 and U+2029 do not end a line comment.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A line comment ends at a line feed (LF), at a carriage return (CR), or at CR LF. U+2028 and U+2029 do not end a line comment.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Block comments do not nest. The first &amp;#039;&amp;#039;%%*/%%&amp;#039;&amp;#039; ends the comment.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Block comments do not nest. The first &amp;#039;&amp;#039;%%*/%%&amp;#039;&amp;#039; ends the comment.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * The &amp;#039;&amp;#039;*&amp;#039;&amp;#039; in &amp;#039;&amp;#039;%%/*%%&amp;#039;&amp;#039; cannot also close the comment. Thus &amp;#039;&amp;#039;%%/*/1%%&amp;#039;&amp;#039; is an unterminated comment, and &amp;#039;&amp;#039;%%/**/1%%&amp;#039;&amp;#039; is the value 1.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * The parser does not accept &amp;#039;&amp;#039;#&amp;#039;&amp;#039; comments.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * The parser does not accept &amp;#039;&amp;#039;#&amp;#039;&amp;#039; comments.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A comment is not a value. Input with only comments causes a syntax error, the same as empty input.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * A comment is not a value. Input with only comments causes a syntax error, the same as empty input.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * A comment can contain all valid UTF-8 characters. This includes the control characters U+&lt;strong class=&quot;diff-mark&quot;&gt;0000&amp;#160;&lt;/strong&gt;to U+001F. These characters cannot go into the result, because the parser discards the comment text.&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;JavaScript also accepts them&amp;#160;&lt;/strong&gt;in&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;comments&lt;/strong&gt;.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * A comment can contain all valid UTF-8 characters&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;except NUL (U+0000)&lt;/strong&gt;. This includes the control characters U+&lt;strong class=&quot;diff-mark&quot;&gt;0001&amp;#160;&lt;/strong&gt;to U+001F. These characters cannot go into the result, because the parser discards the comment text.&lt;strong class=&quot;diff-mark&quot;&gt; &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; * A NUL byte&amp;#160;&lt;/strong&gt;in&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;a comment causes &amp;#039;&amp;#039;JSON_ERROR_CTRL_CHAR&amp;#039;&amp;#039; at the position of the NUL byte, the same as a NUL byte outside a comment. &amp;#039;&amp;#039;JSON_INVALID_UTF8_IGNORE&amp;#039;&amp;#039; and &amp;#039;&amp;#039;JSON_INVALID_UTF8_SUBSTITUTE&amp;#039;&amp;#039; do not change this. Some other parsers end a comment at a NUL byte. The error prevents a different result in PHP for the same input&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Invalid UTF-8 in a comment causes &amp;#039;&amp;#039;JSON_ERROR_UTF8&amp;#039;&amp;#039;, the same as in a string. With &amp;#039;&amp;#039;JSON_INVALID_UTF8_IGNORE&amp;#039;&amp;#039; or &amp;#039;&amp;#039;JSON_INVALID_UTF8_SUBSTITUTE&amp;#039;&amp;#039;, the parser ignores invalid bytes in comments. No U+FFFD goes into the result, because the parser discards the comment text.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Invalid UTF-8 in a comment causes &amp;#039;&amp;#039;JSON_ERROR_UTF8&amp;#039;&amp;#039;, the same as in a string. With &amp;#039;&amp;#039;JSON_INVALID_UTF8_IGNORE&amp;#039;&amp;#039; or &amp;#039;&amp;#039;JSON_INVALID_UTF8_SUBSTITUTE&amp;#039;&amp;#039;, the parser ignores invalid bytes in comments. No U+FFFD goes into the result, because the parser discards the comment text.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * An unterminated block comment causes &amp;#039;&amp;#039;JSON_ERROR_SYNTAX&amp;#039;&amp;#039;. The error location is the position of its &amp;#039;&amp;#039;%%/*%%&amp;#039;&amp;#039;.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * An unterminated block comment causes &amp;#039;&amp;#039;JSON_ERROR_SYNTAX&amp;#039;&amp;#039;. The error location is the position of its &amp;#039;&amp;#039;%%/*%%&amp;#039;&amp;#039;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * Error locations count the lines inside comments. Thus &amp;#039;&amp;#039;near location 3:5&amp;#039;&amp;#039; always points to the correct line of the original input.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * Error locations count the lines inside comments&lt;strong class=&quot;diff-mark&quot;&gt;. As outside comments, only LF and CR LF start a new line. A CR alone ends a line comment, but it does not start a new line&lt;/strong&gt;. Thus &amp;#039;&amp;#039;near location 3:5&amp;#039;&amp;#039; always points to the correct line of the original input.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== JSON_ALLOW_TRAILING_COMMAS ====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== JSON_ALLOW_TRAILING_COMMAS ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 212:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 214:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== To Existing Extensions ====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== To Existing Extensions ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Only ext/json changes. The internal C parser API (&amp;#039;&amp;#039;php_json_parser_init()&amp;#039;&amp;#039;) accepts the two new option bits. Other extensions that use this API see no change, unless they give the new bits.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;Only ext/json changes. The internal C parser API (&amp;#039;&amp;#039;php_json_parser_init()&amp;#039;&amp;#039;) accepts the two new option bits. Other extensions that use this API see no change, unless they give the new bits.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;The PR adds the macros &amp;#039;&amp;#039;PHP_JSON_ALLOW_COMMENTS&amp;#039;&amp;#039; and &amp;#039;&amp;#039;PHP_JSON_ALLOW_TRAILING_COMMAS&amp;#039;&amp;#039; to the public header &amp;#039;&amp;#039;php_json.h&amp;#039;&amp;#039;. The labeler bot of php-src marks each change to this header as &amp;quot;ABI break&amp;quot;. The PR does not change a struct or a function signature.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== To SAPIs ====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== To SAPIs ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 217:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 221:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== Performance ====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;==== Performance ====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;I have measured CPU instructions with Callgrind (Valgrind 3.22, GCC 13.3, &amp;#039;&amp;#039;-O2&amp;#039;&amp;#039;). The input was a pretty-printed JSON document of 7.6 MB with 20,000 objects. The count includes only the call of &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039; or &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;I have measured CPU instructions with Callgrind (Valgrind 3.22, GCC 13.3, &amp;#039;&amp;#039;-O2&amp;#039;&amp;#039;)&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;on commit a4cd163 of the PR and its master base&lt;/strong&gt;. The input was a pretty-printed JSON document of 7.6 MB with 20,000 objects. The count includes only the call of &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039; or &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;^ Call and input ^ master ^ This RFC ^ Change ^&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;^ Call and input ^ master ^ This RFC ^ Change ^&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, strict JSON, no new flag | 354,777,244 |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;361&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;736&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;086&amp;#160;&lt;/strong&gt;| +1.&lt;strong class=&quot;diff-mark&quot;&gt;96&lt;/strong&gt;% | &lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, strict JSON, no new flag | 354,777,244 |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;360&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;436&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;080&amp;#160;&lt;/strong&gt;| +1.&lt;strong class=&quot;diff-mark&quot;&gt;60&lt;/strong&gt;% | &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;| &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;, strict JSON, no new flag | 333,889,491 |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;340&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;848&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;015&amp;#160;&lt;/strong&gt;| +&lt;strong class=&quot;diff-mark&quot;&gt;2&lt;/strong&gt;.&lt;strong class=&quot;diff-mark&quot;&gt;08&lt;/strong&gt;% | &lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;| &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;, strict JSON, no new flag | 333,889,491 |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;339&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;548&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;009&amp;#160;&lt;/strong&gt;| +&lt;strong class=&quot;diff-mark&quot;&gt;1&lt;/strong&gt;.&lt;strong class=&quot;diff-mark&quot;&gt;69&lt;/strong&gt;% | &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, strict JSON, both new flags | - |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;361&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;736&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;086&amp;#160;&lt;/strong&gt;| Same as without the flags | &lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, strict JSON, both new flags | - |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;360&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;436&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;080&amp;#160;&lt;/strong&gt;| Same as without the flags | &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, 10.8 MB with a line comment on each line, both new flags | - |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;407&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;936&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;312&amp;#160;&lt;/strong&gt;| - |&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;| &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;, 10.8 MB with a line comment on each line, both new flags | - |&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;405&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;796&lt;/strong&gt;,&lt;strong class=&quot;diff-mark&quot;&gt;303&amp;#160;&lt;/strong&gt;| - |&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;All extra instructions are in the scanner. The Bison parser uses&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;0.24% fewer&amp;#160;&lt;/strong&gt;instructions&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;than&amp;#160;&lt;/strong&gt;before. Two small scanner changes reduce the extra cost for strict JSON to +0.&lt;strong class=&quot;diff-mark&quot;&gt;62&lt;/strong&gt;% (&amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;) and +0.&lt;strong class=&quot;diff-mark&quot;&gt;66&lt;/strong&gt;% (&amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;). These changes do not change behavior: &lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;All extra instructions are in the scanner. The Bison parser uses&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;the same number of&amp;#160;&lt;/strong&gt;instructions&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;as&amp;#160;&lt;/strong&gt;before. Two small scanner changes reduce the extra cost for strict JSON to +0.&lt;strong class=&quot;diff-mark&quot;&gt;56&lt;/strong&gt;% (&amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039;) and +0.&lt;strong class=&quot;diff-mark&quot;&gt;59&lt;/strong&gt;% (&amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039;). These changes do not change behavior: &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * The scanner keeps the&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;start position&amp;#160;&lt;/strong&gt;of an open block comment in the &amp;#039;&amp;#039;php_json_scanner&amp;#039;&amp;#039; struct. The current code fills&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;three&amp;#160;&lt;/strong&gt;local variables at the start of each &amp;#039;&amp;#039;php_json_scan()&amp;#039;&amp;#039; call.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * The scanner keeps the&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;line data&amp;#160;&lt;/strong&gt;of an open block comment in the &amp;#039;&amp;#039;php_json_scanner&amp;#039;&amp;#039; struct. The current code fills&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;two&amp;#160;&lt;/strong&gt;local variables at the start of each &amp;#039;&amp;#039;php_json_scan()&amp;#039;&amp;#039; call&lt;strong class=&quot;diff-mark&quot;&gt;. This change adds two fields to the struct&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * After whitespace or a line break, the scanner jumps directly back to the JSON state. It does not go through the state dispatch again.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * After whitespace or a line break, the scanner jumps directly back to the JSON state. It does not go through the state dispatch again.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 262:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 266:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Patches and Tests =====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Patches and Tests =====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/23336&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Implementation: https://github.com/php/php-src/pull/23336&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * The PR adds six test files to &amp;#039;&amp;#039;ext/json/tests&amp;#039;&amp;#039; and updates &amp;#039;&amp;#039;json_validate_002.phpt&amp;#039;&amp;#039;. The tests cover comment positions, malformed comments, UTF-8&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;handling&lt;/strong&gt;, trailing commas, other flags and error locations. &lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * The PR adds six test files to &amp;#039;&amp;#039;ext/json/tests&amp;#039;&amp;#039; and updates &amp;#039;&amp;#039;json_validate_002.phpt&amp;#039;&amp;#039;. The tests cover comment positions&lt;strong class=&quot;diff-mark&quot;&gt;, comment delimiters&lt;/strong&gt;, malformed comments,&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;NUL bytes and invalid&amp;#160;&lt;/strong&gt;UTF-8&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;in comments&lt;/strong&gt;, trailing commas, other flags and error locations. &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * The JSON fuzzer (&amp;#039;&amp;#039;sapi/fuzzer/fuzzer-json.c&amp;#039;&amp;#039;) also runs with the new flags.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * The JSON fuzzer (&amp;#039;&amp;#039;sapi/fuzzer/fuzzer-json.c&amp;#039;&amp;#039;) also runs with the new flags&lt;strong class=&quot;diff-mark&quot;&gt;. Its dictionary (&amp;#039;&amp;#039;sapi/fuzzer/json.dict&amp;#039;&amp;#039;) contains the new tokens. &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; * The PR adds UPGRADING notes for the two flags and the two constants&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Differential test: generated 120,025 inputs. The test decoded each input with &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039; and five current flag sets, and validated it with &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039; and two flag sets (840,175 checks). The results, error codes and error messages are the same on master and on this branch.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Differential test: generated 120,025 inputs. The test decoded each input with &amp;#039;&amp;#039;json_decode()&amp;#039;&amp;#039; and five current flag sets, and validated it with &amp;#039;&amp;#039;json_validate()&amp;#039;&amp;#039; and two flag sets (840,175 checks). The results, error codes and error messages are the same on master and on this branch.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Superset test: 21,963 checks with valid strict JSON gave the same result with all three combinations of the new flags.&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&amp;#160; * Superset test: 21,963 checks with valid strict JSON gave the same result with all three combinations of the new flags.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 313:&lt;/td&gt;
&lt;td class=&quot;diff-blockheader&quot; colspan=&quot;2&quot;&gt;Line 318:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Changelog =====&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-context&quot;&gt;===== Changelog =====&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;-&lt;/td&gt;&lt;td class=&quot;diff-deletedline&quot;&gt;&amp;#160; * 1.0 (2026-10-12): First version.&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;After&amp;#160;&lt;/strong&gt;the pre-RFC thread&lt;strong class=&quot;diff-mark&quot;&gt;,&amp;#160;&lt;/strong&gt;the RFC&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;adds&amp;#160;&lt;/strong&gt;the relation to JSON5, JSONC and JWCC&lt;strong class=&quot;diff-mark&quot;&gt;,&amp;#160;&lt;/strong&gt;the reasons for two flags,&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;and&amp;#160;&lt;/strong&gt;test and performance&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;data&lt;/strong&gt;.&lt;strong class=&quot;diff-mark&quot;&gt; &lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&amp;#160; * 1.0 (2026-10-12): First version&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;on the wiki&lt;/strong&gt;.&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;Changes after&amp;#160;&lt;/strong&gt;the pre-RFC thread&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;and&amp;#160;&lt;/strong&gt;the&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;first draft implementation: &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; * The&amp;#160;&lt;/strong&gt;RFC&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;explains&amp;#160;&lt;/strong&gt;the relation to JSON5, JSONC and JWCC&lt;strong class=&quot;diff-mark&quot;&gt;. &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; * The RFC gives&amp;#160;&lt;/strong&gt;the reasons for two flags,&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;not one &amp;#039;&amp;#039;JSON_ALLOW_JSONC&amp;#039;&amp;#039; flag. &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; * A NUL byte in a comment now causes &amp;#039;&amp;#039;JSON_ERROR_CTRL_CHAR&amp;#039;&amp;#039;. The first draft accepted it as comment text. &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; * A CR alone in a comment no longer starts a new line in error locations. &lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&quot;diff-lineheader&quot;&gt;+&lt;/td&gt;&lt;td class=&quot;diff-addedline&quot;&gt;&lt;strong class=&quot;diff-mark&quot;&gt;&amp;#160; &amp;#160; * The RFC adds&amp;#160;&lt;/strong&gt;test&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;results&amp;#160;&lt;/strong&gt;and performance&amp;#160;&lt;strong class=&quot;diff-mark&quot;&gt;measurements&lt;/strong&gt;.&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Asurface3d.png&amp;ns=rfc&amp;rev=1784468890&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-19T13:48:10+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>surface3d.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Asurface3d.png&amp;ns=rfc&amp;rev=1784468890&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Ascaled_on_load_rotate.png&amp;ns=rfc&amp;rev=1784270844&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-17T06:47:24+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>scaled_on_load_rotate.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Ascaled_on_load_rotate.png&amp;ns=rfc&amp;rev=1784270844&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Awatermarked.png&amp;ns=rfc&amp;rev=1784260645&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-17T03:57:25+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>watermarked.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Awatermarked.png&amp;ns=rfc&amp;rev=1784260645&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Ascale_entropy_visual_check.png&amp;ns=rfc&amp;rev=1783998723&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-14T03:12:03+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>scale_entropy_visual_check.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Ascale_entropy_visual_check.png&amp;ns=rfc&amp;rev=1783998723&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atextcurve.png&amp;ns=rfc&amp;rev=1783692533&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-10T14:08:53+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>textcurve.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atextcurve.png&amp;ns=rfc&amp;rev=1783692533&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;1783692513&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Agradient_art.png&amp;ns=rfc&amp;rev=1783319544&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-06T06:32:24+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>gradient_art.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Agradient_art.png&amp;ns=rfc&amp;rev=1783319544&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atiger.png&amp;ns=rfc&amp;rev=1783319523&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-06T06:32:03+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>tiger.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atiger.png&amp;ns=rfc&amp;rev=1783319523&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Agradient_operators.png&amp;ns=rfc&amp;rev=1783319496&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2026-07-06T06:31:36+00:00</dc:date>
        <dc:creator>pajoye (pajoye@undisclosed.example.com)</dc:creator>
        <title>gradient_operators.png - created</title>
        <link>https://wiki.php.net/?image=rfc%3Agradient_operators.png&amp;ns=rfc&amp;rev=1783319496&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atrue_async%3Acoroutine-lifecycle.svg&amp;ns=rfc%3Atrue_async&amp;rev=1744788286&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-16T07:24:46+00:00</dc:date>
        <dc:creator>edmond (edmond@undisclosed.example.com)</dc:creator>
        <title>coroutine-lifecycle.svg - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atrue_async%3Acoroutine-lifecycle.svg&amp;ns=rfc%3Atrue_async&amp;rev=1744788286&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atrue_async%3Asupervisor.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-16T08:38:59+00:00</dc:date>
        <dc:creator>edmond (edmond@undisclosed.example.com)</dc:creator>
        <title>supervisor.svg - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atrue_async%3Asupervisor.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atrue_async%3Aexception_flow.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-16T08:38:59+00:00</dc:date>
        <dc:creator>edmond (edmond@undisclosed.example.com)</dc:creator>
        <title>exception_flow.svg - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atrue_async%3Aexception_flow.svg&amp;ns=rfc%3Atrue_async&amp;rev=1742114339&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
    <item rdf:about="https://wiki.php.net/?image=rfc%3Atrue_async%3Aresume_and_notifier.svg&amp;ns=rfc%3Atrue_async&amp;rev=1739695205&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-16T08:40:05+00:00</dc:date>
        <dc:creator>edmond (edmond@undisclosed.example.com)</dc:creator>
        <title>resume_and_notifier.svg - created</title>
        <link>https://wiki.php.net/?image=rfc%3Atrue_async%3Aresume_and_notifier.svg&amp;ns=rfc%3Atrue_async&amp;rev=1739695205&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;table&gt;&lt;tr&gt;&lt;th width=&quot;50%&quot;&gt;&lt;/th&gt;&lt;th width=&quot;50%&quot;&gt;current&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
    </item>
</rdf:RDF>
