<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration85.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'migration85.windows-support.php',
    1 => 'Windows 支持',
    2 => 'Windows 支持',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => '从 PHP 8.4.x 移植到 PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.other-changes.php',
    1 => '其它变更',
  ),
  'next' => 
  array (
    0 => 'migration84.php',
    1 => '从 PHP 8.3.x 移植到 PHP 8.4.x',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'appendices/migration85/windows-support.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.windows-support" class="sect1">
 <h2 class="title">Windows 支持</h2>

 <div class="sect2" id="migration85.windows-support.core">
  <h3 class="title">核心</h3>

  <p class="simpara">
   配置变量 <strong><code><a href="reserved.constants.php#constant.php-version">PHP_VERSION</a></code></strong>、<strong><code><a href="reserved.constants.php#constant.php-minor-version">PHP_MINOR_VERSION</a></code></strong> 和
   <strong><code><a href="reserved.constants.php#constant.php-release-version">PHP_RELEASE_VERSION</a></code></strong> 现在始终为数值类型。此前，在使用 buildconf 构建时，这些变量为字符串类型。
  </p>

  <p class="simpara">
   <strong class="command">phpize</strong> 构建现在会在构建目录中反映源代码树结构（与树内构建的行为保持一致）；部分扩展的构建方式（尤其是使用 Makefile.frag.w32 时）可能需要相应调整。
  </p>

  <p class="simpara">
   MSVC 构建现已支持 <strong class="option configure">--enable-sanitizer</strong>
   选项。该选项启用 ASan 和调试断言，要求 MSVC 16.10 及以上版本和 Windows 10。
  </p>

  <p class="simpara">
   不再支持针对 clang 构建的 <strong class="option configure">--with-uncritical-warn-choke</strong>
   配置选项，应改用 CFLAGS 指定需抑制的警告。
  </p>

 </div>

 <div class="sect2" id="migration85.windows-support.com">
  <h3 class="title">COM</h3>

  <p class="simpara">
   该扩展现在默认以共享方式构建；此前默认为静态扩展，尽管官方 Windows 二进制版本一直采用共享扩展。
  </p>

 </div>

 <div class="sect2" id="migration85.windows-support.ffi">
  <h3 class="title">FFI</h3>

  <p class="simpara">
   使用 <span class="methodname"><a href="ffi.cdef.php" class="methodname">FFI::cdef()</a></span> 和 <span class="methodname"><a href="ffi.load.php" class="methodname">FFI::load()</a></span> 时不再需要指定库。但此便捷功能不建议在生产环境中使用。
  </p>

 </div>

 <div class="sect2" id="migration85.windows-support.streams">
  <h3 class="title">Stream</h3>

  <p class="simpara">
   如果 <code class="parameter">$read</code> 数组仅包含管道流，且 <code class="parameter">$write</code> 和 <code class="parameter">$except</code>
   数组为空，<span class="function"><a href="function.stream-select.php" class="function">stream_select()</a></span> 现在的行为与 POSIX
   系统一致，即函数仅在至少有一个管道可读或超时到期时才返回。此前，<span class="function"><a href="function.stream-select.php" class="function">stream_select()</a></span> 会立即返回，并报告所有流均处于可读状态。
  </p>

 </div>

</div><?php manual_footer($setup); ?>