<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration83.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'migration83.deprecated.php',
    1 => 'PHP 8.3.x で推奨されなくなる機能',
    2 => 'PHP 8.3.x で推奨されなくなる機能',
  ),
  'up' => 
  array (
    0 => 'migration83.php',
    1 => 'PHP 8.2.x から PHP 8.3.x への移行',
  ),
  'prev' => 
  array (
    0 => 'migration83.incompatible.php',
    1 => '下位互換性のない変更点',
  ),
  'next' => 
  array (
    0 => 'migration83.other-changes.php',
    1 => 'その他の変更',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'appendices/migration83/deprecated.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration83.deprecated" class="sect1">
 <h2 class="title">PHP 8.3.x で推奨されなくなる機能</h2>

 <div class="sect2" id="migration83.deprecated.core">
  <h3 class="title">PHP コア</h3>

  <div class="sect3" id="migration83.deprecated.core.saner-inc-dec-operators">
   <h4 class="title">加算子/減算子 に対する変更</h4>

   <p class="para">
    空文字列や、数値形式でない文字列、そして英数字でない文字列に対して、<a href="language.operators.increment.php" class="link">加算子</a> (<code class="literal">++</code>) を使うことは推奨されなくなりました。さらに、数値形式でない文字列に 加算子 を使うことも、soft-deprecated 扱いになりました。つまり、<strong><code><a href="errorfunc.constants.php#constant.e-deprecated">E_DEPRECATED</a></code></strong> は発生しないものの、新しいコードではこの機能を使うべきではないということです。新しい <span class="function"><a href="function.str-increment.php" class="function">str_increment()</a></span> 関数を代わりに使いましょう。
   </p>

   <p class="para">
    空文字列や数値形式でない文字列に対して、<a href="language.operators.increment.php" class="link">減算子</a> (<code class="literal">--</code>) を使うことは推奨されなくなりました。
   </p>
   
  </div>

  <div class="sect3" id="migration83.deprecated.core.get-class">
   <h4 class="title">引数を渡さずに get_class()/get_parent_class() をコールする</h4>

   <p class="para">
    <span class="function"><a href="function.get-class.php" class="function">get_class()</a></span> と <span class="function"><a href="function.get-parent-class.php" class="function">get_parent_class()</a></span> を、引数を渡さずにコールすることは、推奨されなくなりました。
   </p>
  </div>
 </div>

 <div class="sect2" id="migration83.deprecated.core.dba">
  <h3 class="title">DBA</h3>

  <p class="para">
   <code class="parameter">$dba</code> を第3引数に渡して <span class="function"><a href="function.dba-fetch.php" class="function">dba_fetch()</a></span> をコールすることは、推奨されなくなりました。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.ffi">
  <h3 class="title">FFI</h3>

  <p class="para">
   <span class="methodname"><a href="ffi.cast.php" class="methodname">FFI::cast()</a></span>, <span class="methodname"><a href="ffi.new.php" class="methodname">FFI::new()</a></span>, <span class="methodname"><a href="ffi.type.php" class="methodname">FFI::type()</a></span> を static メソッドとしてコールすることは、推奨されなくなりました。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.intl">
  <h3 class="title">国際化関数</h3>

  <p class="para">
   定数 <strong><code>U_MULTIPLE_DECIMAL_SEP*E*RATORS</code></strong> は、推奨されなくなりました。代わりに <strong><code>U_MULTIPLE_DECIMAL_SEP*A*RATORS</code></strong> を使いましょう。
  </p>
  <p class="para">
   定数 <strong><code><a href="class.numberformatter.php#numberformatter.constants.type-currency">NumberFormatter::TYPE_CURRENCY</a></code></strong> は、推奨されなくなりました。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.ldap">
  <h3 class="title">LDAP</h3>

  <p class="para">
   <span class="function"><a href="function.ldap-connect.php" class="function">ldap_connect()</a></span> に、<code class="parameter">$hostname</code> と <code class="parameter">$port</code> を別々に渡してコールすることは、推奨されなくなりました。
   
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.mbstring">
  <h3 class="title">マルチバイト文字列</h3>

  <p class="para">
   <span class="function"><a href="function.mb-strimwidth.php" class="function">mb_strimwidth()</a></span> に負の <code class="parameter">$width</code> を渡すことは、推奨されなくなりました。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.phar">
  <h3 class="title">Phar</h3>

  <p class="para">
   <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> と <code class="parameter">$length</code> を渡して <span class="methodname"><a href="phar.setstub.php" class="methodname">Phar::setStub()</a></span> をコールすることは、推奨されなくなりました。<code class="code">$phar-&gt;setStub(stream_get_contents($resource));</code> に置き換えるべきです。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.random">
  <h3 class="title">Random</h3>

  <p class="para">
   メルセンヌ・ツイスタ の動作モード <strong><code><a href="random.constants.php#constant.mt-rand-php">MT_RAND_PHP</a></code></strong> は、推奨されなくなりました。
   
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.reflection">
  <h3 class="title">リフレクション</h3>

  <p class="para">
   <span class="methodname"><a href="reflectionproperty.setvalue.php" class="methodname">ReflectionProperty::setValue()</a></span> にひとつだけ引数を渡してコールすることは、推奨されなくなりました。static プロパティを設定するには、最初の引数に <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> を渡します。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.standard">
  <h3 class="title">標準ライブラリ</h3>

  <p class="para">
   <span class="function"><a href="function.assert-options.php" class="function">assert_options()</a></span> 関数は、推奨されなくなりました。
  </p>
  <p class="para">
   定数 <strong><code><a href="info.constants.php#constant.assert-active">ASSERT_ACTIVE</a></code></strong>, <strong><code><a href="info.constants.php#constant.assert-bail">ASSERT_BAIL</a></code></strong>, <strong><code><a href="info.constants.php#constant.assert-callback">ASSERT_CALLBACK</a></code></strong>, <strong><code><a href="info.constants.php#constant.assert-exception">ASSERT_EXCEPTION</a></code></strong>, <strong><code><a href="info.constants.php#constant.assert-warning">ASSERT_WARNING</a></code></strong> は、推奨されなくなりました。
  </p>

  <p class="para">
   INI 設定 <code class="literal">assert.*</code> は、推奨されなくなりました。詳細は <a href="migration83.other-changes.php#migration83.other-changes.ini" class="link">INI ファイルの扱いの変更</a> を参照ください。
  </p>
  
 </div>

 <div class="sect2" id="migration83.deprecated.sqlite3">
  <h3 class="title">SQLite3</h3>

  <p class="para">
   例外を使うことが推奨されるようになりました。警告は将来のバージョンで削除されます。<code class="code">SQLite3::enableExceptions(false)</code> をコールすると、このバージョンでは推奨されない警告が発生します。
  </p>
 </div>

 <div class="sect2" id="migration83.deprecated.zip">
  <h3 class="title">Zip</h3>

  <p class="para">
   定数 <strong><code><a href="zip.constants.php#ziparchive.constants.fl-recompress">ZipArchive::FL_RECOMPRESS</a></code></strong> は、推奨されなくなりました。将来の libzip のバージョンで削除されます。
  </p>
 </div>

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