<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration72.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'migration72.deprecated.php',
    1 => 'Veraltete Features in PHP 7.2.x',
    2 => 'Veraltete Features in PHP 7.2.x',
  ),
  'up' => 
  array (
    0 => 'migration72.php',
    1 => 'Migration von PHP 7.1.x auf PHP 7.2.x',
  ),
  'prev' => 
  array (
    0 => 'migration72.incompatible.php',
    1 => 'Nicht abw&auml;rtskompatible &Auml;nderungen',
  ),
  'next' => 
  array (
    0 => 'migration72.other-changes.php',
    1 => 'Sonstige &Auml;nderungen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'appendices/migration72/deprecated.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration72.deprecated" class="sect1">
 <h2 class="title">Veraltete Features in PHP 7.2.x</h2>

 <div class="sect2" id="migration72.deprecated.unquoted-strings">
  <h3 class="title">Zeichenketten ohne Anführungszeichen</h3>

  <p class="para">
   Eine Zeichenkette, die nicht in Anführungszeichen steht, wird nur dann als
   Zeichenkette behandelt, wenn es keine globale Konstante mit diesem Namen
   gibt. Dieser Fall erzeugte bisher einen Fehler der Stufe
   <strong><code><a href="errorfunc.constants.php#constant.e-notice">E_NOTICE</a></code></strong> und erzeugt nun stattdessen einen Fehler der
   Stufe <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>. In der nächsten PHP-Hauptversion wird
   dann eine <span class="classname"><a href="class.error.php" class="classname">Error</a></span>-Exception ausgelöst.
  </p>

  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">NONEXISTENT</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Output:<br />Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d<br />string(11) "NONEXISTENT"<br />*/</span></span></code></div>
   </div>

  </div>
 </div>

 <div class="sect2" id="migration72.deprecated.png2wbmp-jpeg2wbmp">
  <h3 class="title"><span class="function"><a href="function.png2wbmp.php" class="function">png2wbmp()</a></span> und <span class="function"><a href="function.jpeg2wbmp.php" class="function">jpeg2wbmp()</a></span></h3>

  <p class="para">
   Bei der Erweiterung GD sind die Funktionen <span class="function"><a href="function.png2wbmp.php" class="function">png2wbmp()</a></span>
   und <span class="function"><a href="function.jpeg2wbmp.php" class="function">jpeg2wbmp()</a></span> nun veraltet und werden in der nächsten
   PHP-Hauptversion entfernt.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.INTL_IDNA_VARIANT_2003-variant">
  <h3 class="title">Die Variante <strong><code><a href="intl.constants.php#constant.intl-idna-variant-2003">INTL_IDNA_VARIANT_2003</a></code></strong></h3>

  <p class="para">
   In der Erweiterung Intl ist die Variante
   <strong><code><a href="intl.constants.php#constant.intl-idna-variant-2003">INTL_IDNA_VARIANT_2003</a></code></strong> veraltet. Sie wird derzeit als
   Standardwert für die Funktionen <span class="function"><a href="function.idn-to-ascii.php" class="function">idn_to_ascii()</a></span> und
   <span class="function"><a href="function.idn-to-utf8.php" class="function">idn_to_utf8()</a></span> verwendet. In PHP 7.4 wird dieser
   Standardwert in <strong><code><a href="intl.constants.php#constant.intl-idna-variant-uts46">INTL_IDNA_VARIANT_UTS46</a></code></strong> geändert und
   in der nächsten Hauptversion von PHP wird
   <strong><code><a href="intl.constants.php#constant.intl-idna-variant-2003">INTL_IDNA_VARIANT_2003</a></code></strong> komplett entfernt.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.__autoload-method">
  <h3 class="title">Die Methode <span class="function"><a href="function.autoload.php" class="function">__autoload()</a></span></h3>

  <p class="para">
   Die Methode <span class="function"><a href="function.autoload.php" class="function">__autoload()</a></span> ist veraltet, weil sie der
   Funktion <span class="function"><a href="function.spl-autoload-register.php" class="function">spl_autoload_register()</a></span> unterlegen ist (sie ist
   nicht in der Lage, Autoloader zu verketten) und es keinerlei
   Interoperabilität zwischen den beiden Autoload-Verfahren gibt.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.track_errors-and-php_errormsg">
  <h3 class="title">Die INI-Einstellung <code class="parameter">track_errors</code> und die Variable <code class="literal">$php_errormsg</code></h3>

  <p class="para">
   Wenn die INI-Einstellung <code class="parameter">track_errors</code> aktiviert ist,
   wird bei einem nicht-fatalen Fehler die Variable
   <code class="literal">$php_errormsg</code> im lokalen Bereich erstellt. Da solche
   Fehlerinformationen üblicherweise mit der Funktion
   <span class="function"><a href="function.error-get-last.php" class="function">error_get_last()</a></span> abgefragt werden, ist diese
   Funktionalität nun veraltet.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.create_function-function">
  <h3 class="title">Die Funktion <span class="function"><a href="function.create-function.php" class="function">create_function()</a></span></h3>

  <p class="para">
   In Anbetracht der Sicherheitsprobleme dieser Funktion (sie ist ein
   schlanker Wrapper um <span class="function"><a href="function.eval.php" class="function">eval()</a></span>) ist diese Funktion nun
   veraltet. Stattdessen sollten
   <a href="functions.anonymous.php" class="link">anonyme Funktionen</a> verwendet
   werden.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.mbstringfunc_overload-ini-setting">
  <h3 class="title">Die INI-Einstellung <code class="parameter">mbstring.func_overload</code></h3>

  <p class="para">
   Da es in Umgebungen, in denen diese Einstellung aktiviert ist, Probleme bei
   der Interoperabilität mit zeichenkettenbasierten Funktionen gibt, ist sie
   nun veraltet.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.unset-cast">
  <h3 class="title">Typumwandlung mit <code class="literal">(unset)</code></h3>

  <p class="para">
   Wird ein Ausdruck in diesen Typ umgewandelt, so ergibt dies immer <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>,
   weshalb diese überflüssige Typumwandlung nun veraltet ist.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.parse_str-no-second-arg">
  <h3 class="title"><span class="function"><a href="function.parse-str.php" class="function">parse_str()</a></span> ohne zweiten Parameter</h3>

  <p class="para">
   Wird die Funktion <span class="function"><a href="function.parse-str.php" class="function">parse_str()</a></span> ohne den zweiten Parameter
   verwendet, dann werden die Parameter aus der Abfragezeichenkette in der
   lokalen Symboltabelle abgelegt. In Anbetracht der damit verbundenen
   Sicherheitsrisiken ist die Verwendung von <span class="function"><a href="function.parse-str.php" class="function">parse_str()</a></span>
   ohne den zweiten Parameter nun veraltet. Die Funktion sollte immer mit zwei
   Parametern verwendet werden, da der zweite Parameter bewirkt, dass die
   Abfragezeichenkette in ein Array überführt wird.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.gmp_random-function">
  <h3 class="title">Die Funktion <span class="function"><a href="function.gmp-random.php" class="function">gmp_random()</a></span></h3>

  <p class="para">
   Diese Funktion generiert eine Zufallszahl basierend auf einem Bereich, der
   durch eine nicht näher spezifizierte, plattformspezifische Länge der
   einzelnen Elemente berechnet wird. Aus diesem Grund ist die Funktion nun
   veraltet. Um eine Zustallszahl unter Verwendung der Erweiterung GMP zu
   erzeugen, sollten stattdessen die Funktionen
   <span class="function"><a href="function.gmp-random-bits.php" class="function">gmp_random_bits()</a></span> und
   <span class="function"><a href="function.gmp-random-range.php" class="function">gmp_random_range()</a></span> verwendet werden.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.each-function">
  <h3 class="title">Die Funktion <span class="function"><a href="function.each.php" class="function">each()</a></span></h3>

  <p class="para">
   Diese Funktion ist bei einer Iteration viel langsamer als ein gewöhnliches
   <code class="literal">foreach</code> und führt bei manchen Änderungen an PHP selbst
   zu Implementierungsproblemen, weshalb diese Funktion für veraltet erklärt
   wurde.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.assert-string-arg">
  <h3 class="title">Übergabe einer Zeichenkette an <span class="function"><a href="function.assert.php" class="function">assert()</a></span></h3>

  <p class="para">
   Wenn <span class="function"><a href="function.assert.php" class="function">assert()</a></span> mit einer Zeichenkette als Parameter
   verwendet wird, muss die Zeichenkette mittels <span class="function"><a href="function.eval.php" class="function">eval()</a></span>
   ausgewertet werden. Angesichts des Potenzials für die
   Remote-Code-Ausführung ist die Übergabe einer Zeichenkette an
   <span class="function"><a href="function.assert.php" class="function">assert()</a></span> nun zugunsten der Verwendung boolescher
   Ausdrücke veraltet.
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.errcontext-arg-of-error-handlers">
  <h3 class="title">Der Parameter <code class="literal">$errcontext</code> bei Fehlerbehandlungen</h3>

  <p class="para">
   Der Parameter <code class="literal">$errcontext</code> enthält alle lokalen Variablen
   der Stelle, an der der Fehler auftrat. Weil er nur selten verwendet wird
   und Probleme mit internen Optimierungen verursacht, ist es nun veraltet. Um
   Informationen über lokale Variablen am Ort des Fehlers abzurufen, sollte
   stattdessen ein Debugger verwendet werden,
  </p>
 </div>

 <div class="sect2" id="migration72.deprecated.read_exif_data-function">
  <h3 class="title">Die Funktion <span class="function"><a href="function.read-exif-data.php" class="function">read_exif_data()</a></span></h3>

  <p class="para">
   Der Alias <span class="function"><a href="function.read-exif-data.php" class="function">read_exif_data()</a></span> ist veraltet. Stattdessen
   sollte die Funktion <span class="function"><a href="function.exif-read-data.php" class="function">exif_read_data()</a></span> verwendet werden.
  </p>
 </div>

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