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

contributors($setup);

?>
<div id="migration73.other-changes" class="sect1">
 <h2 class="title">Sonstige Änderungen</h2>

 <div class="sect2" id="migration73.other-changes.core">
  <h3 class="title">PHP-Kern</h3>

  <div class="sect3" id="migration73.other-changes.core.setcookie">
   <h4 class="title">Set(raw)cookie akzeptiert den Parameter $option</h4>

   <p class="para">
    Die Funktionen <span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span> und
    <span class="function"><a href="function.setrawcookie.php" class="function">setrawcookie()</a></span> unterstützen nun auch die folgende
    Signatur:
    <div class="methodsynopsis dc-description">
     <span class="methodname"><a href="function.setcookie.php" class="methodname">setcookie</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$value</code><span class="initializer"> = &quot;&quot;</span></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code><span class="initializer"> = []</span></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

    wobei <code class="literal">$options</code> ein assoziatives Array ist, das die
    folgenden Schlüssel haben kann: <code class="literal">&quot;expires&quot;</code>,
    <code class="literal">&quot;path&quot;</code>, <code class="literal">&quot;domain&quot;</code>,
    <code class="literal">&quot;secure&quot;</code>, <code class="literal">&quot;httponly&quot;</code> und
    <code class="literal">&quot;samesite&quot;</code>.
   </p>
  </div>

  <div class="sect3" id="migration73.other-changes.core.syslog">
   <h4 class="title">Neue INI-Direktiven für Syslog</h4>

   <p class="para">
    Die folgenden INI-Direktiven wurden hinzugefügt, um die Protokollierung
    anzupassen, wenn <a href="errorfunc.configuration.php#ini.error-log" class="link">error_log</a> auf
    <code class="literal">syslog</code> gesetzt ist:
    <dl>
     
      <dt><a href="errorfunc.configuration.php#ini.syslog.facility" class="link">syslog.facility</a></dt>
      <dd>
       <span class="simpara">
        Gibt an, welche Art von Programm die Nachricht protokolliert.
       </span>
      </dd>
     
     
      <dt><a href="errorfunc.configuration.php#ini.syslog.filter" class="link">syslog.filter</a></dt>
      <dd>
       <span class="simpara">
        Gibt den Filtertyp zum Filtern der protokollierten Nachrichten an. Die
        unterstützten Filtertypen sind <code class="literal">all</code>,
        <code class="literal">no-ctrl</code> und <code class="literal">ascii</code>. Seit PHP
        7.3.8 steht außerdem <code class="literal">raw</code> zur Verfügung und stellt
        das Verhalten von syslog aus früheren PHP-Versionen wieder her. Dieser
        Filter wirkt sich auch auf Aufrufe von <span class="function"><a href="function.syslog.php" class="function">syslog()</a></span> aus.
       </span>
      </dd>
     
     
      <dt><a href="errorfunc.configuration.php#ini.syslog.ident" class="link">syslog.ident</a></dt>
      <dd>
       <span class="simpara">
        Gibt die ident-Zeichenkette an, die jeder Meldung vorangestellt wird.
       </span>
      </dd>
     
    </dl>
   </p>
  </div>

  <div class="sect3" id="migration73.other-changes.core.gc">
   <h4 class="title">Garbage-Collection</h4>

   <p class="para">
    Die <a href="features.gc.collecting-cycles.php" class="link">zyklische GC</a>
    wurde verbessert, was zu erheblichen Leistungsverbesserungen führen kann.
   </p>
  </div>

  <div class="sect3" id="migration73.other-changes.core.misc">
   <h4 class="title">Verschiedenes</h4>

   <p class="para">
    Die Funktion <span class="function"><a href="function.var-export.php" class="function">var_export()</a></span> exportiert
    <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>-Objekte nun als Array, das in ein Objekt
    umgewandelt wird (<code class="code">(object) array( ... )</code>), anstatt die nicht
    existierende Methode <span class="methodname"><strong>stdClass::__setState()</strong></span> zu
    verwenden.
   </p>

   <p class="para">
    Die Funktion <span class="function"><a href="function.debug-zval-dump.php" class="function">debug_zval_dump()</a></span> wurde geändert, um
    rekursive Arrays und Objekte auf die gleiche Weise anzuzeigen wie
    <span class="function"><a href="function.var-dump.php" class="function">var_dump()</a></span>. Damit werden sie nun nicht mehr doppelt
    angezeigt.
   </p>

   <p class="para">
    Die Funktionen <span class="function"><a href="function.array-push.php" class="function">array_push()</a></span> und
    <span class="function"><a href="function.array-unshift.php" class="function">array_unshift()</a></span> können nun auch mit einem einzigen
    Parameter aufgerufen werden. Dies ist besonders nützlich in Verbindung mit
    dem Spread-Operator (Zerlegungsoperator).
   </p>
  </div>

 </div>

 <div class="sect2" id="migration73.other-changes.phpdbg">
  <h3 class="title">Interaktiver PHP-Debugger</h3>

  <p class="para">
   Die nicht verwendeten Konstanten <strong><code><a href="phpdbg.constants.php#constant.phpdbg-file">PHPDBG_FILE</a></code></strong>,
   <strong><code><a href="phpdbg.constants.php#constant.phpdbg-method">PHPDBG_METHOD</a></code></strong>, <strong><code><a href="phpdbg.constants.php#constant.phpdbg-lineno">PHPDBG_LINENO</a></code></strong> und
   <strong><code><a href="phpdbg.constants.php#constant.phpdbg-func">PHPDBG_FUNC</a></code></strong> wurden entfernt.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.fpm">
  <h3 class="title">FastCGI-Prozessmanager (FPM)</h3>

  <p class="para">
   Die Funktion <span class="function"><a href="function.getallheaders.php" class="function">getallheaders()</a></span> ist nun ebenfalls verfügbar.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.curl">
  <h3 class="title">Client-URL-Bibliothek (cURL)</h3>

  <p class="para">
   libcurl ≥ 7.15.5 ist nun erforderlich.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.filter">
  <h3 class="title">Datenfilterung</h3>

  <p class="para">
   Der Filter <strong><code><a href="filter.constants.php#constant.filter-validate-float">FILTER_VALIDATE_FLOAT</a></code></strong> unterstützt nun auch
   die Option <code class="literal">thousand</code>, die die erlaubten
   Tausendertrennzeichen definiert. Die Voreinstellung (<code class="code">&quot;&#039;,.&quot;</code>)
   ist vollständig abwärtskompatibel mit früheren PHP-Versionen.
  </p>

  <p class="para">
   Der Filter <strong><code><a href="filter.constants.php#constant.filter-sanitize-add-slashes">FILTER_SANITIZE_ADD_SLASHES</a></code></strong> wurde als Alias
   des <code class="literal">magic_quotes</code>-Filters
   (<strong><code><a href="filter.constants.php#constant.filter-sanitize-magic-quotes">FILTER_SANITIZE_MAGIC_QUOTES</a></code></strong>) hinzugefügt. Der
   <code class="literal">magic_quotes</code>-Filter wird voraussichtlich in zukünftigen
   PHP-Versionen entfernt.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.ftp">
  <h3 class="title">FTP</h3>

  <p class="para">
   Der Standard-Übertragungsmodus ist nun <code class="literal">binary</code>.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.intl">
  <h3 class="title">Funktionen für die Internationalisierung</h3>

  <p class="para">
   Die Konstante <strong><code>Normalizer::NONE</code></strong> ist veraltet, wenn PHP
   mit einer ICU-Version ≥ 56 kompiliert wurde.
  </p>

  <p class="para">
   Bei der Methode <span class="methodname"><a href="normalizer.normalize.php" class="methodname">Normalizer::normalize()</a></span> wurde die
   Konstante <strong><code><a href="class.normalizer.php#normalizer.constants.form-kc-cf">Normalizer::FORM_KC_CF</a></code></strong> als Parameter für die
   <code class="literal">NFKC_Casefold</code>-Normalisierung hinzugefügt; sie ist
   verfügbar mit ICU ≥ 56.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.json">
  <h3 class="title">JavaScript Object Notation (JSON)</h3>

  <p class="para">
   Das neue Flag <strong><code><a href="json.constants.php#constant.json-throw-on-error">JSON_THROW_ON_ERROR</a></code></strong> wurde hinzugefügt,
   das in den Funktionen <span class="function"><a href="function.json-decode.php" class="function">json_decode()</a></span> und
   <span class="function"><a href="function.json-encode.php" class="function">json_encode()</a></span> verwendet werden kann. Es bewirkt, dass
   diese Funktionen bei einem Fehler die neue
   <span class="classname"><a href="class.jsonexception.php" class="classname">JsonException</a></span> auslösen, anstatt den globalen
   Fehlerstatus zu setzen, der mit <span class="function"><a href="function.json-last-error.php" class="function">json_last_error()</a></span> und
   <span class="function"><a href="function.json-last-error-msg.php" class="function">json_last_error_msg()</a></span> abgerufen wird.
   <strong><code><a href="json.constants.php#constant.json-partial-output-on-error">JSON_PARTIAL_OUTPUT_ON_ERROR</a></code></strong> hat Vorrang vor
   <strong><code><a href="json.constants.php#constant.json-throw-on-error">JSON_THROW_ON_ERROR</a></code></strong>.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.mbstring">
  <h3 class="title">Multibyte-Zeichenketten</h3>

  <p class="para">
   Die Konfigurationsoption <strong class="option configure">--with-libmbfl</strong>
   ist nicht mehr verfügbar.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.uodbc">
  <h3 class="title">ODBC (Unified)</h3>

  <p class="para">
   Die Unterstützung für <code class="literal">ODBCRouter</code> und
   <code class="literal">Birdstep</code> einschließlich der INI-Direktive
   <code class="literal">birdstep.max_links</code> wurde entfernt.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.opcache">
  <h3 class="title">OPcache</h3>

  <p class="para">
   Die INI-Direktive <code class="literal">opcache.inherited_hack</code> wurde entfernt.
   Der Wert wurde bereits seit PHP 5.3.0 ignoriert.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.openssl">
  <h3 class="title">OpenSSL</h3>

  <p class="para">
   Die SSL-Stream-Optionen <code class="literal">min_proto_version</code> und
   <code class="literal">max_proto_version</code> sowie die zugehörigen Konstanten für
   mögliche TLS-Protokollwerte wurden hinzugefügt.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.pcre">
  <h3 class="title">Reguläre Ausdrücke (Perl-kompatibel)</h3>

  <p class="para">
   Die Erweiterung <a href="book.pcre.php" class="link">PCRE</a> wurde auf PCRE2
   aktualisiert, was zu kleineren Änderungen im Verhalten führen kann (zum
   Beispiel werden Zeichenbereiche in Klassen nun strenger interpretiert) und
   die bestehende Syntax für reguläre Ausdrücke erweitert.
  </p>

  <p class="para">
   Die Funktion <span class="function"><a href="function.preg-quote.php" class="function">preg_quote()</a></span> maskiert nun auch das
   <code class="literal">&#039;#&#039;</code>-Zeichen.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.pdo-dblib">
  <h3 class="title">Microsoft SQL Server und Sybase-Funktionen (PDO_DBLIB)</h3>

  <p class="para">
   Die Eigenschaft <strong><code>PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS</code></strong>
   wurde hinzugefügt, um leere Datensätze automatisch überspringen zu können.
  </p>

  <p class="para">
   Die Eigenschaft <strong><code>PDO::DBLIB_ATTR_TDS_VERSION</code></strong>, die die
   TDS-Version angibt, wurde hinzugefügt.
  </p>

  <p class="para">
   DATETIME2-Spalten werden nun genauso behandelt wie DATETIME-Spalten.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.pdo-sqlite">
  <h3 class="title">SQLite-Funktionen (PDO_SQLITE)</h3>

  <p class="para">
   SQLite3-Datenbanken können nun im Nur-Lese-Modus geöffnet werden, indem die
   neue Eigenschaft <strong><code>PDO::SQLITE_ATTR_OPEN_FLAGS</code></strong> auf
   <strong><code>PDO::SQLITE_OPEN_READONLY</code></strong> gesetzt wird.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.session">
  <h3 class="title">Handhabung von Sessions</h3>

  <p class="para">
   Die Funktion <span class="function"><a href="function.session-set-cookie-params.php" class="function">session_set_cookie_params()</a></span> unterstützt nun
   auch die folgende Signatur:
   <div class="methodsynopsis dc-description">
    <span class="methodname"><a href="function.session-set-cookie-params.php" class="methodname">session_set_cookie_params</a></span>(<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter">$options</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

   wobei <code class="literal">$options</code> ein assoziatives Array ist, das folgende
   Schlüssel haben kann: <code class="literal">&quot;lifetime&quot;</code>,
   <code class="literal">&quot;path&quot;</code>, <code class="literal">&quot;domain&quot;</code>,
   <code class="literal">&quot;secure&quot;</code>, <code class="literal">&quot;httponly&quot;</code> und
   <code class="literal">&quot;samesite&quot;</code>. Dementsprechend enthält der Rückgabewert der
   Funktion <span class="function"><a href="function.session-get-cookie-params.php" class="function">session_get_cookie_params()</a></span> nun auch ein
   Element mit dem Schlüssel <code class="literal">&quot;samesite&quot;</code>. Außerdem wurde die
   neue INI-Option <code class="literal">session.cookie_samesite</code> hinzugefügt, um
   die Standardeinstellung der SameSite-Direktive für Cookies festzulegen. Ihr
   Standardwert ist <code class="literal">&quot;&quot;</code> (die leere Zeichenkette), sodass
   keine SameSite-Anweisung gesetzt wird. Dieser Wert kann auf
   <code class="literal">&quot;Lax&quot;</code> oder <code class="literal">&quot;Strict&quot;</code> gesetzt werden,
   wodurch die entsprechende SameSite-Richtlinie gesetzt wird.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.tidy">
  <h3 class="title">Tidy</h3>

  <p class="para">
   PHP mit <a href="https://github.com/petdance/tidyp" class="link external">&raquo;&nbsp;tidyp</a> zu kompilieren, wird
   nun auch transparent unterstützt. Da tidyp keine API bietet, um das
   Veröffentlichungsdatum abzurufen, geben die Funktionen
   <span class="function"><a href="tidy.getrelease.php" class="function">tidy_get_release()</a></span> und
   <span class="methodname"><a href="tidy.getrelease.php" class="methodname">tidy::getRelease()</a></span> in diesem Fall
   <code class="literal">&#039;unknown&#039;</code> zurück.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.xml">
  <h3 class="title">XML-Parser</h3>

  <p class="para">
   Wenn die Erweiterung gegen libxml kompiliert wurde, wird der Rückgabewert
   des Callbacks der Funktion
   <span class="function"><a href="function.xml-set-external-entity-ref-handler.php" class="function">xml_set_external_entity_ref_handler()</a></span> nicht mehr
   ignoriert. Zuvor wurde der Rückgabewert ignoriert und das Parsen wurde nie
   beendet.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.zip">
  <h3 class="title">Zip</h3>

  <p class="para">
   Es wird davon abgeraten, gegen die mit PHP mitgelieferte libzip zu
   kompilieren, aber es ist dennoch möglich, indem die Option
   <strong class="option configure">--without-libzip</strong> zur Konfiguration
   hinzugefügt wird.
  </p>
 </div>

 <div class="sect2" id="migration73.other-changes.zlib">
  <h3 class="title">Komprimierung mit Zlib</h3>

  <p class="para">
   Für den <a href="wrappers.compression.php" class="link">compress.zlib-Wrapper</a>
   wurde die Kontextoption zlib/level hinzugefügt, um die Einstellung der
   gewünschten Kompressionsstufe zu erleichtern.
  </p>
 </div>

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