<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/migration81.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'migration81.new-features.php',
    1 => 'Neue Features',
    2 => 'Neue Features',
  ),
  'up' => 
  array (
    0 => 'migration81.php',
    1 => 'Migration von PHP 8.0.x auf PHP 8.1.x',
  ),
  'prev' => 
  array (
    0 => 'migration81.php',
    1 => 'Migration von PHP 8.0.x auf PHP 8.1.x',
  ),
  'next' => 
  array (
    0 => 'migration81.new-classes.php',
    1 => 'Neue Klassen und Interfaces',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'appendices/migration81/new-features.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration81.new-features" class="sect1">
 <h2 class="title">Neue Features</h2>

 <div class="sect2" id="migration81.new-features.core">
  <h3 class="title">PHP-Kern</h3>

  <div class="sect3" id="migration81.new-features.core.octal-literal-prefix">
   <h4 class="title">Präfix für oktale Integer-Literale</h4>

   <p class="para">
    Bei oktalen Integern ist es nun möglich, explizit <code class="literal">0o</code>
    oder <code class="literal">0O</code> als Präfix für numerische Literale anzugeben.
    Dies entspricht der Notation für binäre und hexadezimale Integer-Literale.
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />014</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Oktales Literal ohne Präfix<br /></span><span style="color: #0000BB">0o14</span><span style="color: #007700">; </span><span style="color: #FF8000">// Oktales Literal mit Präfix<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   
  </div>

  <div class="sect3" id="migration81.new-features.core.unpacking-string-keys">
   <h4 class="title">Entpacken von Arrays mit String-Schlüsseln</h4>

   <p class="para">
    Die Unterstützung für das
    <a href="language.types.array.php#language.types.array.unpacking" class="link">Entpacken von Arrays mit String-Schlüsseln</a>
    wurde hinzugefügt.
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$arr1 </span><span style="color: #007700">= [</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #DD0000">'a' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'b'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">$arr2 </span><span style="color: #007700">= [...</span><span style="color: #0000BB">$arr1</span><span style="color: #007700">, </span><span style="color: #DD0000">'c' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'d'</span><span style="color: #007700">]; </span><span style="color: #FF8000">//[1, 'a' =&gt; 'b', 'c' =&gt; 'd']<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   
  </div>

  <div class="sect3" id="migration81.new-features.core.named-arg-after-unpack">
   <h4 class="title">Benannter Parameter nach dem Entpacken von Parametern</h4>

   <p class="para">
    Es ist nun möglich, benannte Parameter nach einem entpackten Parameter
    anzugeben.
    
    z. B. foo(...$args, named: $arg).
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.core.upload-full-path-key">
   <h4 class="title">Vollständiger Pfad beim Hochladen von Dateien</h4>

   <p class="para">
    Datei-Uploads bieten nun einen zusätzlichen
    <code class="literal">full_path</code>-Schlüssel, der den vollständigen Pfad (und
    nicht nur den Basisnamen) der hochgeladenen Datei enthält. Dies ist für
    die Verwendung in Verbindung mit dem HTML-Attribut &quot;webkitdirectory&quot;
    gedacht.
   </p>
   
  </div>

  <div class="sect3" id="migration81.new-features.core.enums">
   <h4 class="title">Aufzählungen</h4>

   <p class="para">
    Die Unterstützung für
    <a href="language.enumerations.php" class="link">Aufzählungen</a> wurde
    hinzugefügt.
    
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.core.fibers">
   <h4 class="title">Fibers</h4>

   <p class="para">
    Die Unterstützung für
    <a href="language.fibers.php" class="link">Fibers</a> wurde hinzugefügt.
    
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.core.callable-syntax">
   <h4 class="title">Callback-Funktionen als Objekte erster Klasse</h4>

   <p class="para">
    Closures für Callback-Funktionen können nun mit
    <a href="functions.first_class_callable_syntax.php" class="link">der Syntax <code class="code">myFunc(...)</code></a>
    erstellt werden, die identisch ist zu
    <code class="code">Closure::fromCallable(&#039;myFunc&#039;)</code>.
    
   </p>
   <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
    <span class="simpara">
     Das <code class="code">...</code> ist keine Auslassung, sondern Teil der Syntax.
    </span>
   </p></blockquote>
  </div>

  <div class="sect3" id="migration81.new-features.core.intersection-types">
   <h4 class="title">Schnittmengentypen (Intersection-Typen)</h4>

   <p class="para">
    Die Unterstützung für
    <a href="language.types.type-system.php#language.types.type-system.composite.intersection" class="link">Schnittmengentypen</a>
    wurde hinzugefügt.
    
   </p>
   <div class="caution"><strong class="caution">Achtung</strong>
    <p class="simpara">
     <a href="language.types.type-system.php#language.types.type-system.composite.intersection" class="link">Schnittmengentypen</a>
     können nicht zusammen mit
     <a href="language.types.declarations.php#language.types.declarations.composite.union" class="link">zusammengefassten Typen (Union-Typen)</a>
     verwendet werden.
    </p>
   </div>
  </div>

  <div class="sect3" id="migration81.new-features.core.never-type">
   <h4 class="title">Never-Typ</h4>

   <p class="para">
    Der neue Rückgabetyp <span class="type"><a href="language.types.never.php" class="type never">never</a></span> wurde hinzugefügt. Dieser zeigt an, dass eine
    Funktion entweder <span class="function"><a href="function.exit.php" class="function">exit()</a></span> aufruft, eine Exception
    auslöst, oder nicht beendet wird.
    
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.core.new-in-initializer">
   <h4 class="title"><a href="language.oop5.basic.php#language.oop5.basic.new" class="link"><code class="literal">new</code></a> in Initialisierungen</h4>

   <p class="para">
    Es ist nun möglich, <code class="code">new ClassName()</code>-Ausdrücke als
    Standardwert für die Initialisierung von Parametern, statischen Variablen
    und globalen Konstanten und als Eigenschafts-Parameter zu verwenden.
    Objekte können nun ebenfalls an <span class="function"><a href="function.define.php" class="function">define()</a></span> übergeben
    werden.
    
   </p>
   
  </div>

  <div class="sect3" id="migration81.new-features.core.readonly">
   <h4 class="title">Schreibgeschützte Eigenschaften</h4>

   <p class="para">
    Die Unterstützung für
    <a href="language.oop5.properties.php#language.oop5.properties.readonly-properties" class="link">readonly</a>
    wurde hinzugefügt.
    
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.core.final-constants">
   <h4 class="title">Finale Klassenkonstanten</h4>

   <p class="para">
    Die Unterstützung für
    <a href="language.oop5.final.php#language.oop5.final.example.php81" class="link">den Modifikator <span class="modifier">final</span> für Klassenkonstanten</a>
    wurde hinzugefügt. Außerdem werden Schnittstellenkonstanten standardmäßig
    überschreibbar.
    
   </p>
  </div>

 </div>

 <div class="sect2" id="migration81.new-features.curl">
  <h3 class="title">CURL</h3>

  <p class="para">
   Die Option <strong><code><a href="curl.constants.php#constant.curlopt-doh-url">CURLOPT_DOH_URL</a></code></strong> wurde hinzugefügt.
  </p>

  <p class="para">
   Zusätzliche Optionen für Blob-Zertifikate, falls libcurl &gt;= 7.71.0:
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-issuercert-blob">CURLOPT_ISSUERCERT_BLOB</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-proxy-issuercert">CURLOPT_PROXY_ISSUERCERT</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-proxy-issuercert-blob">CURLOPT_PROXY_ISSUERCERT_BLOB</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-proxy-sslcert-blob">CURLOPT_PROXY_SSLCERT_BLOB</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-proxy-sslkey-blob">CURLOPT_PROXY_SSLKEY_BLOB</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-sslcert-blob">CURLOPT_SSLCERT_BLOB</a></code></strong></span>
   </li>
   <li class="listitem">
    <span class="simpara"><strong><code><a href="curl.constants.php#constant.curlopt-sslkey-blob">CURLOPT_SSLKEY_BLOB</a></code></strong></span>
   </li>
  </ul>

  <p class="para">
   Die Klasse <span class="classname"><a href="class.curlstringfile.php" class="classname">CURLStringFile</a></span> wurde hinzugefügt. Sie
   kann dazu verwendet werden, statt einer Datei eine Datei aus einem <a href="language.types.string.php" class="link">String</a>
   zu senden:
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$datei </span><span style="color: #007700">= new </span><span style="color: #0000BB">CURLStringFile</span><span style="color: #007700">(</span><span style="color: #0000BB">$daten</span><span style="color: #007700">, </span><span style="color: #DD0000">'dateiname.txt'</span><span style="color: #007700">, </span><span style="color: #DD0000">'text/plain'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">curl_setopt</span><span style="color: #007700">(</span><span style="color: #0000BB">$curl</span><span style="color: #007700">, </span><span style="color: #0000BB">CURLOPT_POSTFIELDS</span><span style="color: #007700">, [</span><span style="color: #DD0000">'datei' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$datei</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.fpm">
  <h3 class="title">FPM</h3>

  <p class="para">
   Ein Openmetrics-Statusformat wurdet hinzugefügt. Es kann von Prometheus
   verwendet werden, um FPM-Metriken abzurufen.
  </p>
  <p class="para">
   Für den dynamischen Prozessmanager wurde eine neue Pool-Option namens
   <code class="literal">pm.max_spawn_rate</code> hinzugefügt. Sie ermöglicht ein
   schnelleres Starten einer Anzahl von Kindprozessen, wenn dynamisches PM
   ausgewählt ist. Der Standardwert ist <code class="literal">32</code>, was der
   vorherige fest kodierte Wert war.
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.gd">
  <h3 class="title">GD</h3>

  <p class="para">
   Wenn libgd mit Avif-Unterstützung gebaut wurde, steht die Unterstützung
   von Avif nun über die Funktionen <span class="function"><a href="function.imagecreatefromavif.php" class="function">imagecreatefromavif()</a></span>
   und <span class="function"><a href="function.imageavif.php" class="function">imageavif()</a></span> zur Verfügung.
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.hash">
  <h3 class="title">Hash</h3>

  <p class="para">
   Die Funktionen <span class="function"><a href="function.hash.php" class="function">hash()</a></span>, <span class="function"><a href="function.hash-file.php" class="function">hash_file()</a></span>
   und <span class="function"><a href="function.hash-init.php" class="function">hash_init()</a></span> unterstützen nun zusätzlich den
   optionalen Parameter <code class="parameter">options</code>, der zur Übergabe von
   Algorithmus-spezifischen Daten verwendet werden kann.
  </p>

  <div class="sect3" id="migration81.new-features.hash.murmurhash3">
   <h4 class="title">MurmurHash3</h4>

   <p class="para">
    Die Unterstützung für <code class="literal">MurmurHash3</code> mit der Unterstützung
    für Streaming wurde hinzugefügt. Die folgenden Varianten sind
    implementiert:
   </p>
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">murmur3a, 32-Bit-Hash</span>
    </li>
    <li class="listitem">
     <span class="simpara">murmur3c, 128-Bit-Hash für x86</span>
    </li>
    <li class="listitem">
     <span class="simpara">murmur3f, 128-Bit-Hash für x64</span>
    </li>
   </ul>

   <p class="para">
    Der anfängliche Hash-Status kann durch den Schlüssel
    <code class="literal">seed</code> im Array <code class="parameter">options</code> übergeben
    werden, zum Beispiel:

    <div class="informalexample">
     <div class="example-contents">
      <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$h </span><span style="color: #007700">= </span><span style="color: #0000BB">hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"murmur3f"</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">, </span><span style="color: #0000BB">options</span><span style="color: #007700">: [</span><span style="color: #DD0000">"seed" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">42</span><span style="color: #007700">]);<br />echo </span><span style="color: #0000BB">$h</span><span style="color: #007700">, </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>

    Ein gültiger Seed-Wert liegt im Bereich von <code class="literal">0</code> bis zum
    plattformdefinierten <strong><code>UINT_MAX</code></strong>, normalerweise
    <code class="literal">4294967295</code>.
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.hash.xxhash">
   <h4 class="title">xxHash</h4>

   <p class="para">
    Die Unterstützung für <code class="literal">xxHash</code> wurde hinzugefügt. Die
    folgenden Varianten sind implementiert:
   </p>
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">xxh32, 32-Bit-Hash</span>
    </li>
    <li class="listitem">
     <span class="simpara">xxh64, 64-Bit-Hash</span>
    </li>
    <li class="listitem">
     <span class="simpara">xxh3, 64-Bit-Hash</span>
    </li>
    <li class="listitem">
     <span class="simpara">xxh128, 128-Bit-Hash</span>
    </li>
   </ul>

   <p class="para">
    Der anfängliche Hash-Status kann durch den Schlüssel
    <code class="literal">seed</code> im Array <code class="parameter">options</code> übergeben
    werden, zum Beispiel:

    <div class="informalexample">
     <div class="example-contents">
      <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$h </span><span style="color: #007700">= </span><span style="color: #0000BB">hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"xxh3"</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">, </span><span style="color: #0000BB">options</span><span style="color: #007700">: [</span><span style="color: #DD0000">"seed" </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">42</span><span style="color: #007700">]);<br />echo </span><span style="color: #0000BB">$h</span><span style="color: #007700">, </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>

    Die Verwendung eines geheimen Parameters wird durch Übergeben des
    Schlüssels <code class="literal">secret</code> im Array
    <code class="parameter">options</code> ebenfalls unterstützt:

    <div class="informalexample">
     <div class="example-contents">
      <div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$h </span><span style="color: #007700">= </span><span style="color: #0000BB">hash</span><span style="color: #007700">(</span><span style="color: #DD0000">"xxh3"</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">, </span><span style="color: #0000BB">options</span><span style="color: #007700">: [</span><span style="color: #DD0000">"secret" </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">"das Geheimnis muss hier mindestens 136 Bytes lang sein"</span><span style="color: #007700">]);<br />echo </span><span style="color: #0000BB">$h</span><span style="color: #007700">, </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>

    Die Qualität des benutzerdefinierten geheimen Parameters ist entscheidend
    für die Qualität des resultierenden Hashes. Es wird dringend empfohlen,
    für den geheimen Parameter die bestmögliche Entropie zu verwenden.
   </p>
  </div>
 </div>

 <div class="sect2" id="migration81.new-features.mysqli">
  <h3 class="title">MySQLi</h3>

  <div class="sect3" id="migration81.new-features.mysqli.local_infile_directory">
   <h4 class="title">Neue INI-Directive <code class="literal">mysqli.local_infile_directory</code></h4>

   <p class="para">
    Die INI-Direktive
    <a href="mysqli.configuration.php#ini.mysqli.local-infile-directory" class="link">mysqli.local_infile_directory</a>
    wurde hinzugefügt. Sie kann verwendet werden, um ein Verzeichnis
    anzugeben, aus dem aus dem Dateien geladen werden dürfen. Sie ist nur dann
    relevant, wenn
    <a href="mysqli.configuration.php#ini.mysqli.allow-local-infile" class="link">mysqli.allow_local_infile</a>
    nicht aktiviert ist, da in diesem Fall alle Verzeichnisse erlaubt sind.
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.mysqli.bind-in-execute">
   <h4 class="title">Parameter in execute binden</h4>

   <p class="para">
    Es ist nun möglich, Parameter zu binden, indem sie als Array an
    <span class="methodname"><a href="mysqli-stmt.execute.php" class="methodname">mysqli_stmt::execute()</a></span> übergeben werden. Alle Werte
    werden als Zeichenketten gebunden. Nur Listen-Arrays sind erlaubt. Diese
    neue Funktion ist nicht verfügbar wenn MySQLi mit libmysqlclient
    kompiliert wurde.
    
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">'INSERT INTO users(id, name) VALUES(?,?)'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">([</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">$username</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </div>

  <div class="sect3" id="migration81.new-features.mysqli.mysqli_fetch_column">
   <h4 class="title">Neue Methode <span class="methodname"><a href="mysqli-result.fetch-column.php" class="methodname">mysqli_result::fetch_column()</a></span></h4>

   <p class="para">
    Die Methode <span class="methodname"><a href="mysqli-result.fetch-column.php" class="methodname">mysqli_result::fetch_column()</a></span> wurde
    hinzugefügt, um das Abrufen eines einzelnen skalaren Werts aus der
    Ergebnismenge zu ermöglichen. Die neue Methode akzeptiert den optionalen
    0-basierten Parameter <code class="parameter">column</code> vom Typ <a href="language.types.integer.php" class="link">Integer</a>, der
    angibt, aus welcher Spalte abgerufen werden soll.
    
    <div class="informalexample">
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">'SELECT username FROM users WHERE id = 123'</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch_column</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
  </div>

 </div>

 <div class="sect2" id="migration81.new-features.pdo_mysql">
  <h3 class="title">PDO</h3>

  <p class="para">
   Die Eigenschaft <strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-local-infile-directory">PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY</a></code></strong>
   wurde hinzugefügt. Damit kann ein Verzeichnis angegeben werden, aus dem
   Dateien geladen werden dürfen. Sie ist nur dann relevant, wenn
   <strong><code><a href="ref.pdo-mysql.php#pdo.constants.mysql-attr-local-infile">PDO::MYSQL_ATTR_LOCAL_INFILE</a></code></strong> nicht aktiviert ist, da
   in diesem Fall alle Verzeichnisse erlaubt sind.
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.pdo_sqlite">
  <h3 class="title">PDO_SQLite</h3>

  <p class="para">
   Die DSN-Syntax <code class="literal">&quot;file:&quot;</code> von SQLite wird nun unterstützt,
   was die Angabe zusätzlicher Flags ermöglicht. Dieses Feature ist nicht
   verfügbar, wenn open_basedir gesetzt ist.
   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #DD0000">'sqlite:file:path/to/sqlite.db?mode=ro'</span><span style="color: #007700">)<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.posix">
  <h3 class="title">POSIX</h3>

  <p class="para">
   <strong><code><a href="posix.constants.setrlimit.php#constant.posix-rlimit-kqueues">POSIX_RLIMIT_KQUEUES</a></code></strong> und
   <strong><code><a href="posix.constants.setrlimit.php#constant.posix-rlimit-npts">POSIX_RLIMIT_NPTS</a></code></strong> wurden hinzugefügt. Diese rlimits
   sind nur unter FreeBSD verfügbar.
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.standard">
  <h3 class="title">Standard</h3>

  <p class="para">
   Die Funktion <span class="function"><a href="function.fputcsv.php" class="function">fputcsv()</a></span> akzeptiert nun den neuen
   Parameter <code class="parameter">eol</code>, mit dem eine eigene Sequenz für das
   Zeilenende definiert werden kann. Die Vorgabe bleibt dieselbe wie bisher:
   <code class="literal">&quot;\n&quot;</code>.
  </p>
 </div>

 <div class="sect2" id="migration81.new-features.spl">
  <h3 class="title">SPL</h3>

  <p class="para">
   Die Methode <span class="methodname"><a href="splfileobject.fputcsv.php" class="methodname">SplFileObject::fputcsv()</a></span> akzeptiert nun
   den neuen Parameter <code class="parameter">eol</code>, mit dem eine eigene Sequenz
   für das Zeilenende definiert werden kann. Die Vorgabe bleibt dieselbe wie
   bisher: <code class="literal">&quot;\n&quot;</code>.
  </p>
 </div>

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