<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'migration85.new-features.php',
    1 => 'Nuevas caracter&iacute;sticas',
    2 => 'Nuevas caracter&iacute;sticas',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Migraci&oacute;n de PHP 8.4.x a PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.php',
    1 => 'Migraci&oacute;n de PHP 8.4.x a PHP 8.5.x',
  ),
  'next' => 
  array (
    0 => 'migration85.new-classes.php',
    1 => 'Nuevas clases e interfaces',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'appendices/migration85/new-features.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.new-features" class="sect1">
 <h2 class="title">Nuevas características</h2>

 <div class="sect2" id="migration85.new-features.core">
  <h3 class="title">Núcleo de PHP</h3>

  <div class="sect3" id="migration85.new-features.core.pipe-operator">
   <h4 class="title">Operador Pipe</h4>

   <p class="simpara">
    Añadido el <a href="language.operators.functional.php" class="link">Operador
    pipe (<code class="literal">|&gt;</code>)</a>.
    
   </p>

   <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: #DD0000">"Hola Mundo" </span><span style="color: #007700">|&gt; </span><span style="color: #0000BB">strlen</span><span style="color: #007700">(...);<br />print </span><span style="color: #0000BB">$result </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;  </span><span style="color: #FF8000">// imprime "10"</span></span></code></div>
    </div>

   </div>
  </div>

  <div class="sect3" id="migration85.new-features.core.closures-in-constexpr">
   <h4 class="title">Cierres en expresiones constantes</h4>

   <p class="para">
    Añadido soporte para <a href="class.closure.php" class="link">Closures</a> y
    <a href="functions.first_class_callable_syntax.php" class="link">callable de primera clase</a>
    en expresiones constantes. Esto incluye:

    <ul class="simplelist">
     <li>Parámetros de atributos.</li>
     <li>Valores predeterminados de propiedades y parámetros.</li>
     <li>Constantes y constantes de clase.</li>
    </ul>

    
    
   </p>
  </div>

  <div class="sect3" id="migration85.new-features.core.nodiscard-attribute">
   <h4 class="title">Atributo #[\NoDiscard]</h4>

   <p class="simpara">
    Añadido el atributo <span class="classname"><a href="class.nodiscard.php" class="classname">NoDiscard</a></span> para indicar que el
    valor de retorno de una función es importante y debe ser consumido.
    
   </p>

   <p class="simpara">
    Además, se añadió la conversión <code class="literal">(void)</code> para indicar que no usar un valor es intencional.
    La conversión <code class="literal">(void)</code> no afecta la ejecución del programa por sí sola, pero
    puede usarse para suprimir las advertencias emitidas por <code class="code">#[\NoDiscard]</code> y posiblemente
    también los diagnósticos emitidos por IDE externos o herramientas de análisis estático.
    
   </p>

   <div class="informalexample">
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">#[</span><span style="color: #0000BB">\NoDiscard</span><span style="color: #007700">]<br />function </span><span style="color: #0000BB">concat</span><span style="color: #007700">(</span><span style="color: #0000BB">string $a</span><span style="color: #007700">, </span><span style="color: #0000BB">string $b</span><span style="color: #007700">): </span><span style="color: #0000BB">string </span><span style="color: #007700">{<br />     return </span><span style="color: #0000BB">$a </span><span style="color: #007700">. </span><span style="color: #0000BB">$b</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Advertencia: El valor de retorno de la función concat() debe usarse o<br />// ignorarse intencionalmente convirtiéndolo a (void) en xxx.php<br /></span><span style="color: #0000BB">concat</span><span style="color: #007700">(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #DD0000">"b"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// No hay advertencia, porque el valor de retorno es consumido por la asignación.<br /></span><span style="color: #0000BB">$results </span><span style="color: #007700">= </span><span style="color: #0000BB">concat</span><span style="color: #007700">(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #DD0000">"b"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// No hay advertencia, porque se utiliza la conversión (void).<br /></span><span style="color: #007700">(</span><span style="color: #0000BB">void</span><span style="color: #007700">)</span><span style="color: #0000BB">concat</span><span style="color: #007700">(</span><span style="color: #DD0000">"a"</span><span style="color: #007700">, </span><span style="color: #DD0000">"b"</span><span style="color: #007700">);</span></span></code></div>
    </div>

   </div>

  </div>

  <div class="sect3" id="migration85.new-features.core.attributes-on-constants">
   <h4 class="title">Atributos en constantes</h4>

   <p class="simpara">
    Añadido soporte para atributos en constantes no de clase en tiempo de compilación
    (p. ej. <code class="code">const MY_CONST = 1;</code> en lugar de
    <code class="code">define(&#039;MY_CONST&#039;, 1);</code>).
    
   </p>

   <p class="simpara">
    El atributo <span class="classname"><a href="class.deprecated.php" class="classname">Deprecated</a></span> ahora se puede usar en constantes.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.delayedtargetvalidation-attribute">
   <h4 class="title">Atributo <code class="code">#[\DelayedTargetValidation]</code></h4>

   <p class="simpara">
    El nuevo atributo <span class="classname"><strong class="classname">DelayedTargetValidation</strong></span> permite
    suprimir los errores de compilación de los atributos principales (o de extensión) que se
    utilizan en destinos no válidos. Estos errores se notifican en tiempo de ejecución
    cuando se llama a <span class="methodname"><a href="reflectionattribute.newinstance.php" class="methodname">ReflectionAttribute::newInstance()</a></span>.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.override-for-properties">
   <h4 class="title"><code class="code">#[\Override]</code> para propiedades</h4>

   <p class="simpara">
    El atributo <span class="classname"><a href="class.override.php" class="classname">Override</a></span> ahora se puede aplicar a las propiedades.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.static-aviz">
   <h4 class="title">Visibilidad asimétrica estática</h4>

   <p class="simpara">
    Añadida compatibilidad con <a href="language.oop5.visibility.php#language.oop5.visibility-members-aviz" class="link">
    visibilidad asimétrica</a> para propiedades estáticas.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.backtraces-for-fatal-errors">
   <h4 class="title">Seguimiento de pila para errores fatales</h4>

   <p class="simpara">
    Los errores fatales (como exceder el tiempo máximo de ejecución) ahora incluyen
    un seguimiento de pila.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.final-property-promotion">
   <h4 class="title">Promoción del constructor para propiedades finales</h4>

   <p class="simpara">
    La <a href="language.oop5.decon.php#language.oop5.decon.constructor.promotion" class="link">promoción de propiedades
    en el constructor ahora</a> se puede utilizar para propiedades finales.
    
   </p>

  </div>

  <div class="sect3" id="migration85.new-features.core.casts-in-constexpr">
   <h4 class="title">Conversión en expresiones constantes</h4>

   <p class="simpara">
    Añadida compatibilidad para conversiones en expresiones constantes.
   </p>

   <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">const </span><span style="color: #0000BB">T1 </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">0.3</span><span style="color: #007700">; </span><span style="color: #FF8000">// Anteriormente: "Fatal error: Constant expression contains invalid operations"<br /></span><span style="color: #007700">print </span><span style="color: #0000BB">T1 </span><span style="color: #007700">. </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;   </span><span style="color: #FF8000">// Imprime "0"</span></span></code></div>
    </div>

   </div>

  </div>

  <div class="sect3" id="migration85.new-features.core.clone-function">
   <h4 class="title">Función de clonación</h4>

   <p class="simpara">
    La <a href="language.oop5.cloning.php" class="link">construcción del lenguaje de clonación</a>
    ahora es una función y admite la reasignación de propiedades (de solo lectura) durante
    la clonación a través del nuevo parámetro <span class="property">$withProperties</span>.
    
   </p>

  </div>

 </div>

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

  <p class="simpara">
   Añadido soporte para
   <a href="class.curlsharepersistenthandle.php" class="link">manejadores compartidos</a>
   que se mantienen a través de múltiples solicitudes PHP, permitiendo de forma segura
   una reutilización más eficaz de las conexiones.
   
  </p>

  <p class="simpara">
   Añadido soporte para <strong><code>CURLINFO_USED_PROXY</code></strong> (libcurl &gt;= 8.7.0),
   <strong><code>CURLINFO_HTTPAUTH_USED</code></strong>,
   y <strong><code>CURLINFO_PROXYAUTH_USED</code></strong> (libcurl &gt;= 8.12.0)
   a la función <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span>.
   Cuando <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span> devuelve un array, la misma información
   está disponible como claves <code class="literal">&quot;used_proxy&quot;</code>,
   <code class="literal">&quot;httpauth_used&quot;</code> y
   <code class="literal">&quot;proxyauth_used&quot;</code>.
   <strong><code>CURLINFO_USED_PROXY</code></strong> se establece en cero si no se utilizó ningún proxy en la
   transferencia anterior o en un valor distinto de cero si se utilizó un proxy.
   <strong><code>CURLINFO_HTTPAUTH_USED</code></strong> y
   <strong><code>CURLINFO_PROXYAUTH_USED</code></strong> obtienen máscaras de bits
   que indican los métodos de autenticación HTTP y proxy que se
   utilizaron en la solicitud anterior.
   Véanse las constantes <strong><code><a href="curl.constants.php#constant.curlauth-any">CURLAUTH_<span class="replaceable">*</span></a></code></strong> para
   valores posibles.
  </p>

  <p class="simpara">
   Añadida la opción Curl <strong><code>CURLOPT_INFILESIZE_LARGE</code></strong>, que sustituye
   de forma segura a <strong><code><a href="curl.constants.php#constant.curlopt-infilesize">CURLOPT_INFILESIZE</a></code></strong>. En algunos sistemas,
   <strong><code><a href="curl.constants.php#constant.curlopt-infilesize">CURLOPT_INFILESIZE</a></code></strong> solo acepta un entero con signo de 32 bits como
   tamaño de archivo (2,0 GiB), incluso en sistemas de 64 bits.
   <strong><code>CURLOPT_INFILESIZE_LARGE</code></strong> acepta el valor entero más grande
   que el sistema puede manejar.
  </p>

  <p class="simpara">
   Añadidos los valores <strong><code>CURLFOLLOW_OBEYCODE</code></strong>,
   <strong><code>CURLFOLLOW_FIRSTONLY</code></strong> y <strong><code>CURLFOLLOW_ALL</code></strong>
   para la opción <strong><code><a href="curl.constants.php#constant.curlopt-followlocation">CURLOPT_FOLLOWLOCATION</a></code></strong>
   <span class="function"><a href="function.curl-setopt.php" class="function">curl_setopt()</a></span>.
   <strong><code>CURLFOLLOW_OBEYCODE</code></strong> para seguir más estrictamente en lo que respecta a
   las redirecciones si están permitidas.
   <strong><code>CURLFOLLOW_FIRSTONLY</code></strong> para seguir solo la primera redirección, por lo que
   si hay alguna redirección posterior, no irá más allá.
   <strong><code>CURLFOLLOW_ALL</code></strong> es equivalente a establecer
   <strong><code><a href="curl.constants.php#constant.curlopt-followlocation">CURLOPT_FOLLOWLOCATION</a></code></strong> a true.
  </p>

  <p class="simpara">
   Añadida compatibilidad con <strong><code>CURLINFO_CONN_ID</code></strong> (libcurl &gt;= 8.2.0)
   a la función <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span>. Esta constante permite recuperar
   el ID único de la conexión utilizada en una transferencia cURL. Resulta especialmente
   útil cuando se requiere lógica de reutilización o agrupación de conexiones en
   aplicaciones PHP. Cuando <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span> devuelve un array,
   este valor está disponible como la clave <code class="literal">&quot;conn_id&quot;</code>.
  </p>

  <p class="simpara">
   Añadida compatibilidad con <strong><code>CURLINFO_QUEUE_TIME_T</code></strong> (libcurl &gt;= 8.6.0)
   a la función <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span>. Esta constante permite
   obtener el tiempo (en microsegundos) que la solicitud permaneció en la cola de conexiones
   de libcurl antes de ser enviada.
   Este valor también se puede obtener pasando
   <strong><code>CURLINFO_QUEUE_TIME_T</code></strong> al parámetro <code class="parameter">option</code>
   de la función <span class="function"><a href="function.curl-getinfo.php" class="function">curl_getinfo()</a></span>.
  </p>

  <p class="simpara">
   Añadido soporte para <strong><code>CURLOPT_SSL_SIGNATURE_ALGORITHMS</code></strong> para
   especificar los algoritmos de firma que se utilizarán para TLS.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.dom">
  <h3 class="title">DOM</h3>

  <p class="simpara">
   Añadida <span class="property">Dom\Element::$outerHTML</span>.
  </p>

  <p class="simpara">
   Añadida la propiedad <span class="property">$children</span> a
   las implementaciones de <span class="interfacename"><a href="class.dom-parentnode.php" class="interfacename">Dom\ParentNode</a></span>.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.exif">
  <h3 class="title">EXIF</h3>

  <p class="simpara">
   Añadida compatibilidad con las etiquetas Exif <code class="literal">OffsetTime*</code>.
  </p>

  <p class="simpara">
   Añadida compatibilidad con HEIF/HEIC.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.filter">
  <h3 class="title">Filter</h3>

  <p class="simpara">
   Añadida la nueva flag <strong><code>FILTER_THROW_ON_FAILURE</code></strong>, que se puede
   pasar a las funciones de filtro y fuerza el lanzamiento de una excepción
   cuando falla la validación.
   Esta nueva bandera no se puede combinar con
   <strong><code><a href="filter.constants.php#constant.filter-null-on-failure">FILTER_NULL_ON_FAILURE</a></code></strong>; si se intenta, se lanzará
   <span class="exceptionname"><a href="class.valueerror.php" class="exceptionname">ValueError</a></span>.
   
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.intl">
  <h3 class="title">Intl</h3>

  <p class="simpara">
   Añadidas las constantes de clase <strong><code><a href="class.numberformatter.php#numberformatter.constants.currency-iso">NumberFormatter::CURRENCY_ISO</a></code></strong>,
   <strong><code><a href="class.numberformatter.php#numberformatter.constants.currency-plural">NumberFormatter::CURRENCY_PLURAL</a></code></strong>,
   <strong><code><a href="class.numberformatter.php#numberformatter.constants.cash-currency">NumberFormatter::CASH_CURRENCY</a></code></strong>
   y <strong><code><a href="class.numberformatter.php#numberformatter.constants.currency-standard">NumberFormatter::CURRENCY_STANDARD</a></code></strong>
   para varios formatos de números relacionados con monedas.
  </p>

  <p class="simpara">
   Añadidos <span class="methodname"><strong>Locale::addLikelySubtags()</strong></span> y
   <span class="methodname"><strong>Locale::minimizeSubtags()</strong></span> para manejar las etiquetas probables
   en una configuración regional determinada.
  </p>

  <p class="simpara">
   Añadida la clase <span class="classname"><strong class="classname">IntlListFormatter</strong></span> para formatear, ordenar
   y puntuar una lista de elementos con una configuración regional determinada,
   los operandos <strong><code>IntlListFormatter::TYPE_AND</code></strong>,
   <strong><code>IntlListFormatter::TYPE_OR</code></strong>,
   <strong><code>IntlListFormatter::TYPE_UNITS</code></strong>, y los anchos
   <strong><code>IntlListFormatter::WIDTH_WIDE</code></strong>,
   <strong><code>IntlListFormatter::WIDTH_SHORT</code></strong> y
   <strong><code>IntlListFormatter::WIDTH_NARROW</code></strong>.
   Es compatible a partir de ICU 67.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.pdo-sqlite">
  <h3 class="title">PDO_Sqlite</h3>

  <p class="simpara">
   Añadida la constante de clase <strong><code>Pdo\Sqlite::ATTR_BUSY_STATEMENT</code></strong>.
  </p>

  <p class="simpara">
   Añadidas las constantes de clase <strong><code>Pdo\Sqlite::ATTR_EXPLAIN_STATEMENT</code></strong>,
   <strong><code>Pdo\Sqlite::EXPLAIN_MODE_PREPARED</code></strong>,
   <strong><code>Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN</code></strong>,
   <strong><code>Pdo\Sqlite::EXPLAIN_MODE_EXPLAIN_QUERY_PLAN</code></strong>.
  </p>

  <p class="simpara">
   Añadido el atributo de conexión <strong><code>Pdo\Sqlite::ATTR_TRANSACTION_MODE</code></strong>
   con los valores posibles <strong><code>Pdo\Sqlite::TRANSACTION_MODE_DEFERRED</code></strong>,
   <strong><code>Pdo\Sqlite::TRANSACTION_MODE_IMMEDIATE</code></strong>
   y <strong><code>Pdo\Sqlite::TRANSACTION_MODE_EXCLUSIVE</code></strong>,
   lo que permite configurar el modo de transacción que se utilizará al llamar a beginTransaction().
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.session">
  <h3 class="title">Sesiones</h3>

  <p class="simpara">
   <span class="function"><a href="function.session-set-cookie-params.php" class="function">session_set_cookie_params()</a></span>,
   <span class="function"><a href="function.session-get-cookie-params.php" class="function">session_get_cookie_params()</a></span>,
   y <span class="function"><a href="function.session-start.php" class="function">session_start()</a></span> ahora admiten cookies particionadas mediante la
   clave <code class="literal">&quot;partitioned&quot;</code>.
   
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.soap">
  <h3 class="title">SOAP</h3>

  <p class="simpara">
   Los casos de enumeración ahora se vuelcan en <span class="methodname"><a href="soapclient.gettypes.php" class="methodname">SoapClient::__getTypes()</a></span>.
  </p>

  <p class="simpara">
   Añadida compatibilidad con el atributo xml:lang de Soap 1.2 Reason Text.
  </p>

  <p class="simpara">
   Por lo tanto, las firmas de <span class="methodname"><a href="soapfault.construct.php" class="methodname">SoapFault::__construct()</a></span> y
   <span class="methodname"><a href="soapserver.fault.php" class="methodname">SoapServer::fault()</a></span>
   ahora incluyen un parámetro opcional <code class="parameter">$lang</code>.
   Esta compatibilidad resuelve el problema de compatibilidad con los clientes SOAP de .NET.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.standard">
  <h3 class="title">Estándar</h3>

  <p class="simpara">
   <span class="function"><a href="function.mail.php" class="function">mail()</a></span> ahora devuelve el error real de sendmail y detecta
   si el proceso de sendmail finalizó inesperadamente.
   En tales casos, se emite una advertencia y la función devuelve false.
   Anteriormente, estos errores se ignoraban silenciosamente.
   Este cambio afecta únicamente al transporte de sendmail.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.getimagesize.php" class="function">getimagesize()</a></span> ahora admite imágenes HEIF/HEIC.
  </p>

  <p class="simpara">
   <span class="function"><a href="function.getimagesize.php" class="function">getimagesize()</a></span> ahora admite imágenes SVG cuando también se carga
   ext-libxml.
   Del mismo modo, <span class="function"><a href="function.image-type-to-extension.php" class="function">image_type_to_extension()</a></span> y
   <span class="function"><a href="function.image-type-to-mime-type.php" class="function">image_type_to_mime_type()</a></span>
   ahora también admiten IMAGETYPE_SVG.
  </p>

  <p class="simpara">
   El array que devuelve <span class="function"><a href="function.getimagesize.php" class="function">getimagesize()</a></span> ahora incluye dos entradas adicionales:
   <code class="literal">&quot;width_unit&quot;</code> y <code class="literal">&quot;height_unit&quot;</code> para indicar las
   unidades en las que se expresan las dimensiones. Estas unidades son px por omisión. No tienen
   por qué ser iguales (por poner solo un ejemplo: una puede ser cm y la otra px).
  </p>

  <p class="simpara">
   <span class="function"><a href="function.setcookie.php" class="function">setcookie()</a></span> y <span class="function"><a href="function.setrawcookie.php" class="function">setrawcookie()</a></span> ahora admiten la
   clave <code class="literal">&quot;partitioned&quot;</code>.
   
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.uri">
  <h3 class="title">URI</h3>

  <p class="simpara">
   Añadida una extensión URI siempre habilitada que se puede utilizar para manejar
   URI y URL de acuerdo con RFC 3986 y WHATWG URL.
   
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.xsl">
  <h3 class="title">XSL</h3>

  <p class="simpara">
   El argumento <code class="parameter">$namespace</code> de <span class="methodname"><a href="xsltprocessor.getparameter.php" class="methodname">XSLTProcessor::getParameter()</a></span>,
   <span class="methodname"><a href="xsltprocessor.setparameter.php" class="methodname">XSLTProcessor::setParameter()</a></span> y
   <span class="methodname"><a href="xsltprocessor.removeparameter.php" class="methodname">XSLTProcessor::removeParameter()</a></span> ahora funciona correctamente
   en lugar de considerarse vacío.
   Esto solo funciona si el argumento <code class="parameter">$name</code> no utiliza la notación Clark ni es un
   QName, ya que en esos casos el espacio de nombres se obtiene del espacio de nombres href o
   prefijo, respectivamente.
  </p>

 </div>

 <div class="sect2" id="migration85.new-features.zlib">
  <h3 class="title">Zlib</h3>

  <p class="simpara">
   Ahora se admite <span class="function"><a href="function.flock.php" class="function">flock()</a></span> en flujos zlib. Anteriormente,
   esta función siempre fallaba al realizar cualquier acción de bloqueo.
  </p>

 </div>

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