<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'changelog.strings.php',
    1 => '更新日志',
    2 => '更新日志',
  ),
  'up' => 
  array (
    0 => 'book.strings.php',
    1 => '字符串',
  ),
  'prev' => 
  array (
    0 => 'function.wordwrap.php',
    1 => 'wordwrap',
  ),
  'next' => 
  array (
    0 => 'refs.basic.vartype.php',
    1 => '变量与类型相关扩展',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/strings/book.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="changelog.strings" class="appendix">
  <h1 class="title">更新日志</h1>

  <p class="para">对本扩展的类／函数／方法有以下更新。</p>
  <table class='doctable table' rules='groups'><thead><tr><th>Version</th><th>Function</th><th>Description</th></tr></thead><tbody class="gen-changelog v"><tr><td>8.5.0</td><td><a href='function.setlocale.php'>setlocale</a></td><td>将整数 0 作为 locales 参数传递给
        setlocale 不再受支持，现会抛出 TypeError。</td></tr></tbody><tbody class="gen-changelog v8-5-0"><tr><td>8.4.0</td><td><a href='function.str-getcsv.php'>str_getcsv</a></td><td>现在已弃用依赖 escape 的默认值。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-getcsv.php'>str_getcsv</a></td><td>如果 separator、enclosure
        或 escape 无效，现在会抛出 ValueError。这模仿了
        fgetcsv 和 fputcsv 的行为。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcspn.php'>strcspn</a></td><td>在 PHP 8.4.0 之前，当 characters 为空字符串时，搜索会错误地停止在
        string 的第一个 null 字节处。</td></tr></tbody><tbody class="gen-changelog v8-4-0"><tr><td>8.3.0</td><td><a href='function.number-format.php'>number_format</a></td><td>新增对 decimals 负值的处理。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-getcsv.php'>str_getcsv</a></td><td>如果最后一个字段仅包含未终止的 enclosure，则返回空字符串，而不是带有单个 NULL 字节的字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.php'>strrchr</a></td><td>新增 before_needle 参数。</td></tr><tr><td>&nbsp;</td><td><a href='function.strtok.php'>strtok</a></td><td>现在，当未提供 token 时，会抛出 E_WARNING。</td></tr></tbody><tbody class="gen-changelog v8-3-0"><tr><td>8.2.0</td><td><a href='function.lcfirst.php'>lcfirst</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-ireplace.php'>str_ireplace</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-split.php'>str_split</a></td><td>如果 string 为空，现在返回空 array。之前返回的 array 包含单个空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcasecmp.php'>strcasecmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcmp.php'>strcmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.php'>stripos</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.php'>stristr</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.strnatcasecmp.php'>strnatcasecmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.strnatcmp.php'>strnatcmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.strncasecmp.php'>strncasecmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.strncmp.php'>strncmp</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.php'>strripos</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会进行 ASCII
   大小写转换。非 ASCII 字节值将通过它们的字节值进行比较。</td></tr><tr><td>&nbsp;</td><td><a href='function.strtolower.php'>strtolower</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.strtoupper.php'>strtoupper</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-compare.php'>substr_compare</a></td><td>当字符串长度不相等时，此函数不再保证返回 strlen($string1) - strlen($string2)，
  而可能返回 -1 或 1。</td></tr><tr><td>&nbsp;</td><td><a href='function.ucfirst.php'>ucfirst</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.ucwords.php'>ucwords</a></td><td>大小写转换不在依赖于使用 setlocale 设置的区域。只会转换 ASCII 字符。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-decode.php'>utf8_decode</a></td><td>弃用此函数。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-encode.php'>utf8_encode</a></td><td>弃用此函数。</td></tr></tbody><tbody class="gen-changelog v8-2-0"><tr><td>8.1.0</td><td><a href='function.get-html-translation-table.php'>get_html_translation_table</a></td><td>flags 从 ENT_COMPAT 更改为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.html-entity-decode.php'>html_entity_decode</a></td><td>flags changed from ENT_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlentities.php'>htmlentities</a></td><td>flags 从 ENT_COMPAT 变更为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlspecialchars.php'>htmlspecialchars</a></td><td>flags 从 ENT_COMPAT 变更为 ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401。</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlspecialchars-decode.php'>htmlspecialchars_decode</a></td><td>flags 从 ENT_COMPAT 变更为ENT_QUOTES
       | ENT_SUBSTITUTE | ENT_HTML401。</td></tr></tbody><tbody class="gen-changelog v8-1-0"><tr><td>8.0.0</td><td><a href='function.convert-cyr-string.php'>convert_cyr_string</a></td><td>此函数已移除。</td></tr><tr><td>&nbsp;</td><td><a href='function.convert-uuencode.php'>convert_uuencode</a></td><td>在此版本之前，尝试转换空字符串将返回 false，没有任何特殊原因。</td></tr><tr><td>&nbsp;</td><td><a href='function.count-chars.php'>count_chars</a></td><td>在此版本之前，函数在失败时返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.crypt.php'>crypt</a></td><td>salt不再可选。</td></tr><tr><td>&nbsp;</td><td><a href='function.fprintf.php'>fprintf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.fprintf.php'>fprintf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.fprintf.php'>fprintf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.fprintf.php'>fprintf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.fprintf.php'>fprintf</a></td><td>当传递的参数少于所需的参数时抛出 ArgumentCountError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.hebrevc.php'>hebrevc</a></td><td>此函数已移除。</td></tr><tr><td>&nbsp;</td><td><a href='function.html-entity-decode.php'>html_entity_decode</a></td><td>encoding is nullable now.</td></tr><tr><td>&nbsp;</td><td><a href='function.htmlentities.php'>htmlentities</a></td><td>encoding 现在可以为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.implode.php'>implode</a></td><td>在 array 之后传递 separator 已不再支持。</td></tr><tr><td>&nbsp;</td><td><a href='function.levenshtein.php'>levenshtein</a></td><td>在此版本之前，必须使用两个或者五个参数调用 levenshtein。</td></tr><tr><td>&nbsp;</td><td><a href='function.levenshtein.php'>levenshtein</a></td><td>在此版本之前，如果某个参数字符串的长度超过 255 个字符，则 levenshtein 将会返回 -1。</td></tr><tr><td>&nbsp;</td><td><a href='function.metaphone.php'>metaphone</a></td><td>The function returned false on failure.</td></tr><tr><td>&nbsp;</td><td><a href='function.money-format.php'>money_format</a></td><td>此函数已移除。</td></tr><tr><td>&nbsp;</td><td><a href='function.number-format.php'>number_format</a></td><td>在此版本之前，number_format 接受一个、两个或四个参数（不会是三个）。</td></tr><tr><td>&nbsp;</td><td><a href='function.parse-str.php'>parse_str</a></td><td>result 是必须项。</td></tr><tr><td>&nbsp;</td><td><a href='function.printf.php'>printf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.printf.php'>printf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.printf.php'>printf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.printf.php'>printf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.printf.php'>printf</a></td><td>当传递的参数少于所需的参数时抛出 ArgumentCountError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.soundex.php'>soundex</a></td><td>Prior to this version, calling the function with an empty string returned false
       for no particular reason.</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.php'>sprintf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.php'>sprintf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.php'>sprintf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.php'>sprintf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.sprintf.php'>sprintf</a></td><td>当传递的参数少于所需的参数时抛出 ArgumentCountError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-split.php'>str_split</a></td><td>如果 length 小于 1，现在会抛出
       ValueError；之前会触发 E_WARNING
       级别的错误且函数会返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-word-count.php'>str_word_count</a></td><td>characters 可为空（Nullable）类型。</td></tr><tr><td>&nbsp;</td><td><a href='function.strcspn.php'>strcspn</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.strip-tags.php'>strip_tags</a></td><td>allowed_tags 允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.php'>stripos</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.php'>stripos</a></td><td>不再支持 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.php'>stristr</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.php'>stristr</a></td><td>不再支持 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.php'>strpos</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.php'>strpos</a></td><td>不再支持 int 传入 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.php'>strrchr</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.php'>strrchr</a></td><td>不再支持将 int 作为 needle 传递。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.php'>strripos</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.php'>strripos</a></td><td>不再支持将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrpos.php'>strrpos</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrpos.php'>strrpos</a></td><td>不再支持将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strspn.php'>strspn</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.strstr.php'>strstr</a></td><td>needle 现在接受空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.strstr.php'>strstr</a></td><td>不再支持传递 int 作为 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr.php'>substr</a></td><td>现在 length 允许为 null。当 length
       显式设置为 null 时，函数返回在字符串末尾结束的子字符串，而之前将返回空字符串。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr.php'>substr</a></td><td>函数将返回空字符串, 在此之前返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-compare.php'>substr_compare</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-count.php'>substr_count</a></td><td>length 可以为空（nullable）。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-replace.php'>substr_replace</a></td><td>length 现在允许为 null。</td></tr><tr><td>&nbsp;</td><td><a href='function.vfprintf.php'>vfprintf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.vfprintf.php'>vfprintf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vfprintf.php'>vfprintf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vfprintf.php'>vfprintf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vfprintf.php'>vfprintf</a></td><td>当传递的参数少于所需的参数时抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vprintf.php'>vprintf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.vprintf.php'>vprintf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vprintf.php'>vprintf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vprintf.php'>vprintf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vprintf.php'>vprintf</a></td><td>当传递的参数少于所需的参数时抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.php'>vsprintf</a></td><td>此函数失败时不再返回 false。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.php'>vsprintf</a></td><td>如果参数个数为零则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.php'>vsprintf</a></td><td>如果 [width] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.php'>vsprintf</a></td><td>如果 [precision] 小于零或大于 PHP_INT_MAX，则抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.vsprintf.php'>vsprintf</a></td><td>当传递的参数少于所需的参数时抛出 ValueError；以前该函数则会发出 E_WARNING。</td></tr><tr><td>&nbsp;</td><td><a href='function.wordwrap.php'>wordwrap</a></td><td>如果 break 是空字符串，抛出 ValueError；之前此情况会触发
       E_WARNING 并且返回  false。</td></tr></tbody><tbody class="gen-changelog v8-0-0"><tr><td>7.4.0</td><td><a href='function.chr.php'>chr</a></td><td>此函数不再静默接受不支持的 codepoint，并会将它们转为 0。</td></tr><tr><td>&nbsp;</td><td><a href='function.convert-cyr-string.php'>convert_cyr_string</a></td><td>此函数已废弃。</td></tr><tr><td>&nbsp;</td><td><a href='function.hebrevc.php'>hebrevc</a></td><td>此函数已废弃。</td></tr><tr><td>&nbsp;</td><td><a href='function.implode.php'>implode</a></td><td>在 array 之后传递 separator （即：使用遗留写法）已被废弃。</td></tr><tr><td>&nbsp;</td><td><a href='function.money-format.php'>money_format</a></td><td>此函数已废弃。
        使用 NumberFormatter::formatCurrency 替代。</td></tr><tr><td>&nbsp;</td><td><a href='function.str-getcsv.php'>str_getcsv</a></td><td>escape 现在将空字符串视为禁用专有转义机制的信号。以前视为默认参数值。</td></tr><tr><td>&nbsp;</td><td><a href='function.strip-tags.php'>strip_tags</a></td><td>allowed_tags 现在可以接受 array。</td></tr></tbody><tbody class="gen-changelog v7-4-0"><tr><td>7.3.5</td><td><a href='function.substr-compare.php'>substr_compare</a></td><td>offset 现在可能等于 haystack。</td></tr></tbody><tbody class="gen-changelog v7-3-5"><tr><td>7.3.0</td><td><a href='function.stripos.php'>stripos</a></td><td>弃用 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.stristr.php'>stristr</a></td><td>弃用 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.php'>strpos</a></td><td>弃用 int 传入 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrchr.php'>strrchr</a></td><td>弃用将 int 作为 needle 传递。</td></tr><tr><td>&nbsp;</td><td><a href='function.strripos.php'>strripos</a></td><td>弃用将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strrpos.php'>strrpos</a></td><td>弃用将 int 传递给 needle。</td></tr><tr><td>&nbsp;</td><td><a href='function.strstr.php'>strstr</a></td><td>弃用传递 int 作为 needle。</td></tr></tbody><tbody class="gen-changelog v7-3-0"><tr><td>7.2.18</td><td><a href='function.substr-compare.php'>substr_compare</a></td><td>offset 现在可能等于 haystack。</td></tr></tbody><tbody class="gen-changelog v7-2-18"><tr><td>7.2.0</td><td><a href='function.number-format.php'>number_format</a></td><td>number_format 现在再也不会返回 -0，之前
        num 为 -0.01 的情况下可以返回 -0。</td></tr><tr><td>&nbsp;</td><td><a href='function.parse-str.php'>parse_str</a></td><td>不带第二个参数的情况下使用 parse_str 会产生 
        E_DEPRECATED 警告。</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-decode.php'>utf8_decode</a></td><td>This function has been moved from the XML extension to the core of PHP.
        In previous versions, it was only available if the XML extension was installed.</td></tr><tr><td>&nbsp;</td><td><a href='function.utf8-encode.php'>utf8_encode</a></td><td>This function has been moved from the XML extension to the core of PHP.
        In previous versions, it was only available if the XML extension was installed.</td></tr></tbody><tbody class="gen-changelog v7-2-0"><tr><td>7.1.0</td><td><a href='function.str-shuffle.php'>str_shuffle</a></td><td>内置的随机算法从 libc rand 函数更改为梅森旋转伪随机数生成算法。</td></tr><tr><td>&nbsp;</td><td><a href='function.stripos.php'>stripos</a></td><td>开始支持负数的 offset。</td></tr><tr><td>&nbsp;</td><td><a href='function.strpos.php'>strpos</a></td><td>开始支持负数的 offset。</td></tr><tr><td>&nbsp;</td><td><a href='function.substr-count.php'>substr_count</a></td><td>开始支持负数的 offset 和 length。</td></tr></tbody></table>
 </div>
<?php manual_footer($setup); ?>