<?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.other-changes.php',
    1 => 'Otros cambios',
    2 => 'Otros cambios',
  ),
  'up' => 
  array (
    0 => 'migration85.php',
    1 => 'Migraci&oacute;n de PHP 8.4.x a PHP 8.5.x',
  ),
  'prev' => 
  array (
    0 => 'migration85.deprecated.php',
    1 => 'Funcionalidades obsoletas',
  ),
  'next' => 
  array (
    0 => 'migration85.windows-support.php',
    1 => 'Soporte para Windows',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'appendices/migration85/other-changes.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="migration85.other-changes" class="sect1">
 <h2 class="title">Otros cambios</h2>

 <div class="sect2" id="migration85.other-changes.core">
  <h3 class="title">Cambios en el núcleo</h3>

  <div class="sect3" id="migration85.other-changes.core.core">
   <h4 class="title">Núcleo</h4>

   <p class="simpara">
    El temporizador de alta resolución (<span class="function"><a href="function.hrtime.php" class="function">hrtime()</a></span>) en macOS ahora
    utiliza la API recomendada
    <code class="code">clock_gettime_nsec_np(CLOCK_UPTIME_RAW)</code> en lugar de
    <code class="code">mach_absolute_time()</code>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.core.cgi-cli">
   <h4 class="title">CGI/CLI</h4>

   <p class="simpara">
    Se ha eliminado la opción <strong class="option unknown">-z</strong> o <strong class="option unknown">--zend-extension</strong>
    ya que no funcionaba.
    En su lugar, utilice <strong class="option unknown">-d zend_extension=[ruta]</strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.core.pdo-odbc">
   <h4 class="title">PDO_ODBC</h4>

   <p class="simpara">
    Se ha modificado el comportamiento de recuperación de datos para columnas de mayor tamaño. En lugar de
    recuperar bloques de 256 bytes, PDO_ODBC intentará recuperar bloques de mayor tamaño;
    actualmente, este tamaño corresponde al tamaño de página menos la sobrecarga de cadena.
    Los controladores que devuelven SQL_NO_TOTAL en SQLGetData también se gestionan mejor.
    Esto debería mejorar la compatibilidad y el rendimiento.
    
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.sapi">
  <h3 class="title">Changes in SAPI Modules</h3>

  <div class="sect3" id="migration85.other-changes.sapi.cli">
   <h4 class="title">CLI</h4>

   <p class="simpara">
    Intentar establecer un título de proceso demasiado largo con
    <span class="function"><a href="function.cli-set-process-title.php" class="function">cli_set_process_title()</a></span> ahora fallará en lugar de
    truncar silenciosamente el título dado.
   </p>

   <p class="simpara">
    Se agregó una nueva opción <strong class="option unknown">--ini=diff</strong> para imprimir la configuración INI
    modificada con respecto al valor predeterminado integrado.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.sapi.fpm">
   <h4 class="title">FPM</h4>

   <p class="simpara">
    FPM con httpd ProxyPass decodifica opcionalmente la ruta completa del script. Se ha añadido
    la configuración INI fastcgi.script_path_encoded
    para evitar este nuevo comportamiento.
   </p>

   <p class="simpara">
    El límite de registro de acceso de FPM ahora respeta el valor <a href="install.fpm.configuration.php#log-limit" class="link">log_limit</a>.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.functions">
  <h3 class="title">Funciones modificadas</h3>

  <div class="sect3" id="migration85.other-changes.functions.intl">
   <h4 class="title">Intl</h4>

   <p class="simpara">
    <span class="function"><a href="function.grapheme-extract.php" class="function">grapheme_extract()</a></span> asigna correctamente el valor de
    <code class="parameter">$next</code> al omitir bytes iniciales no válidos.
    Anteriormente, en ocasiones apuntaba al inicio del
    límite del grafema en lugar de al final.
   </p>

   <p class="simpara">
    Se ha eliminado <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> de la unión de tipos de retorno de
    <span class="function"><a href="transliterator.geterrorcode.php" class="function">transliterator_get_error_code()</a></span>,
    <span class="function"><a href="transliterator.geterrormessage.php" class="function">transliterator_get_error_message()</a></span>,
    <span class="methodname"><a href="transliterator.geterrorcode.php" class="methodname">TransLiterator::getErrorCode()</a></span>,
    y <span class="methodname"><a href="transliterator.geterrormessage.php" class="methodname">TransLiterator::getErrorMessage()</a></span>. Devolver <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>
    nunca fue posible.
   </p>

   <p class="simpara">
    Las siguientes funciones ahora admiten un argumento <code class="parameter">$locale</code>:
    <span class="function"><a href="function.grapheme-strpos.php" class="function">grapheme_strpos()</a></span>,
    <span class="function"><a href="function.grapheme-stripos.php" class="function">grapheme_stripos()</a></span>,
    <span class="function"><a href="function.grapheme-strrpos.php" class="function">grapheme_strrpos()</a></span>,
    <span class="function"><a href="function.grapheme-strripos.php" class="function">grapheme_strripos()</a></span>,
    <span class="function"><a href="function.grapheme-substr.php" class="function">grapheme_substr()</a></span>,
    <span class="function"><a href="function.grapheme-strstr.php" class="function">grapheme_strstr()</a></span> y
    <span class="function"><a href="function.grapheme-stristr.php" class="function">grapheme_stristr()</a></span>
    
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.ldap">
   <h4 class="title">LDAP</h4>

   <p class="simpara">
    <span class="function"><a href="function.ldap-get-option.php" class="function">ldap_get_option()</a></span> ahora acepta una conexión <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>,
    como <span class="function"><a href="function.ldap-set-option.php" class="function">ldap_set_option()</a></span>, para permitir la recuperación de
    opciones globales.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.libxml">
   <h4 class="title">libxml</h4>

   <p class="simpara">
    <span class="function"><a href="function.libxml-set-external-entity-loader.php" class="function">libxml_set_external_entity_loader()</a></span> ahora tiene un tipo
    de retorno formal de <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.openssl">
   <h4 class="title">OpenSSL</h4>

   <p class="simpara">
    <span class="function"><a href="function.openssl-public-encrypt.php" class="function">openssl_public_encrypt()</a></span> y
    <span class="function"><a href="function.openssl-private-decrypt.php" class="function">openssl_private_decrypt()</a></span> tienen un nuevo parámetro
    <code class="parameter">$digest_algo</code> que permite especificar el algoritmo de
    resumen hash para el relleno OAEP.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.openssl-sign.php" class="function">openssl_sign()</a></span> y <span class="function"><a href="function.openssl-verify.php" class="function">openssl_verify()</a></span>
    tienen un nuevo parámetro <code class="parameter">$padding</code> para permitir el uso
    de un relleno RSA PSS más seguro.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.openssl-cms-encrypt.php" class="function">openssl_cms_encrypt()</a></span> el parámetro <code class="parameter">$cipher_algo</code>
    puede ser un string con el nombre del algoritmo de cifrado.
    Esto permite usar más algoritmos, incluidos los algoritmos de cifrado AES y GCM, para
    datos cifrados con autenticación.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pcntl">
   <h4 class="title">PCNTL</h4>

   <p class="simpara">
    <span class="function"><a href="function.pcntl-exec.php" class="function">pcntl_exec()</a></span> ahora tiene un tipo de retorno formal de
    <span class="type"><a href="language.types.singleton.php" class="type false">false</a></span>.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.pcntl-waitid.php" class="function">pcntl_waitid()</a></span> toma un argumento resource_usage adicional
    para recopilar varias métricas específicas de la plataforma sobre el proceso hijo.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pdo-pgsql">
   <h4 class="title">PDO_PGSQL</h4>

   <p class="simpara">
    <span class="methodname"><a href="pdo-pgsql.copyfromarray.php" class="methodname">Pdo\Pgsql::copyFromArray()</a></span> ahora admite entradas <span class="type"><a href="language.types.iterable.php" class="type iterable">iterable</a></span>.
   </p>

   <p class="simpara">
    <span class="methodname"><strong>Pdo\Pgsql::setAttribute()</strong></span> y
    <span class="methodname"><strong>Pdo\Pgsql::prepare()</strong></span> permiten establecer
    <strong><code><a href="pdo.constants.php#pdo.constants.attr-prefetch">PDO::ATTR_PREFETCH</a></code></strong> en 0, lo que activa el modo de carga diferida.
    En este modo, las sentencias no se pueden ejecutar en paralelo.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.pgsql">
   <h4 class="title">PostgreSQL</h4>

   <p class="simpara">
    <span class="function"><a href="function.pg-copy-from.php" class="function">pg_copy_from()</a></span> ahora admite entradas <span class="type"><a href="language.types.iterable.php" class="type iterable">iterable</a></span>.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.pg-connect.php" class="function">pg_connect()</a></span> comprueba si el argumento connection_string
    contiene algún byte nulo.
   </p>

   <p class="simpara">
    <span class="function"><strong>pg_close_stmt()</strong></span> comprueba si el argumento statement_name
    contiene algún byte nulo.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.posix">
   <h4 class="title">POSIX</h4>

   <p class="simpara">
    <span class="function"><a href="function.posix-ttyname.php" class="function">posix_ttyname()</a></span> establece last_error en EBADF cuando encuentra
    un descriptor de archivo no válido.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.posix-isatty.php" class="function">posix_isatty()</a></span> genera un mensaje <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
    cuando encuentra un descriptor de archivo no válido.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.posix-fpathconf.php" class="function">posix_fpathconf()</a></span> comprueba los descriptores de archivo no válidos y
    establece last_error en EBADF y genera un mensaje <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.reflection">
   <h4 class="title">Reflection</h4>

   <p class="simpara">
    La salida de <span class="methodname"><a href="reflectionclass.tostring.php" class="methodname">ReflectionClass::__toString()</a></span> para
    enumeraciones ha cambiado para indicar mejor que la clase es una enumeración y que
    los casos de enumeración son casos de enumeración en lugar de constantes de clase normales.
   </p>

   <p class="simpara">
    La salida de <span class="methodname"><a href="reflectionproperty.tostring.php" class="methodname">ReflectionProperty::__toString()</a></span> para
    propiedades con hooks ha cambiado para indicar qué hooks tiene la propiedad,
    si son finales y si la propiedad es virtual.
    Esto también afecta al resultado de <span class="methodname"><a href="reflectionclass.tostring.php" class="methodname">ReflectionClass::__toString()</a></span>
    cuando una clase contiene propiedades con hooks.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.sockets">
   <h4 class="title">Sockets</h4>

   <p class="simpara">
    <span class="function"><a href="function.socket-create.php" class="function">socket_create()</a></span>/<span class="function"><a href="function.socket-bind.php" class="function">socket_bind()</a></span> puede
    crear sockets de la familia <strong><code>AF_PACKET</code></strong>.
   </p>

   <p class="simpara">
    <span class="function"><a href="function.socket-getsockname.php" class="function">socket_getsockname()</a></span> obtiene el índice de la interfaz y su
    representación de string con el socket <strong><code>AF_PACKET</code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.functions.zlib">
   <h4 class="title">Zlib</h4>

   <p class="simpara">
    El argumento <code class="parameter">$use_include_path</code> para las funciones
    <span class="function"><a href="function.gzfile.php" class="function">gzfile()</a></span>, <span class="function"><a href="function.gzopen.php" class="function">gzopen()</a></span> y
    <span class="function"><a href="function.readgzfile.php" class="function">readgzfile()</a></span> se ha cambiado
    de <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> a <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>.
   </p>

   <p class="simpara">
    Las funciones <span class="function"><a href="function.gzfile.php" class="function">gzfile()</a></span>,
    <span class="function"><a href="function.gzopen.php" class="function">gzopen()</a></span> y <span class="function"><a href="function.readgzfile.php" class="function">readgzfile()</a></span>
    ahora respetan el contexto de flujo predeterminado.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.extensions">
  <h3 class="title">Otros cambios en las extensiones</h3>

  <div class="sect3" id="migration85.other-changes.extensions.curl">
   <h4 class="title">cURL</h4>

   <p class="simpara">
    <span class="function"><a href="function.curl-setopt.php" class="function">curl_setopt()</a></span> con
    el valor de la opción <strong><code><a href="curl.constants.php#constant.curlopt-followlocation">CURLOPT_FOLLOWLOCATION</a></code></strong>
    ya no se trata como booleano, sino como entero para manejar
    <strong><code>CURLFOLLOW_OBEYCODE</code></strong> y
    <strong><code>CURLFOLLOW_FIRSTONLY</code></strong>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.fileinfo">
   <h4 class="title">Fileinfo</h4>

   <p class="simpara">
    Actualizado file de 5.45 a 5.46.
   </p>

   <p class="simpara">
    El tipo de retorno de <span class="function"><a href="function.finfo-close.php" class="function">finfo_close()</a></span> se ha cambiado a
    <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span>, en lugar de <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.intl">
   <h4 class="title">Intl</h4>

   <p class="simpara">
    El mecanismo interno de errores de Intl se ha modernizado para
    indicar con mayor precisión qué sitio de llamada causó qué error.
    Además, algunas excepciones de extensión/fecha ahora se encapsulan dentro de una
    <span class="classname"><a href="class.intlexception.php" class="classname">IntlException</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.lexbor">
   <h4 class="title">Lexbor</h4>

   <p class="simpara">
    Se ha añadido una extensión Lexbor siempre habilitada. Contiene la biblioteca Lexbor
    que se separó de <a href="book.dom.php" class="link">ext/dom</a>
    para su reutilización en otras extensiones.
    La nueva extensión no está expuesta directamente al espacio de usuario.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.opcache">
   <h4 class="title">Opcache</h4>

   <p class="simpara">
    La <a href="book.opcache.php" class="link">extensión Opcache</a> ahora viene siempre
    integrada en el binario de PHP y siempre se carga.
    Las directivas INI <a href="opcache.configuration.php#ini.opcache.enable" class="link">opcache.enable</a>
    y <a href="opcache.configuration.php#ini.opcache.enable-cli" class="link">opcache.enable_cli</a> siguen
    siendo válidas.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.pcre">
   <h4 class="title">PCRE</h4>

   <p class="simpara">
    Se actualizó pcre2lib de 10.44 a 10.46.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.pdo-sqlite">
   <h4 class="title">PDO_Sqlite</h4>

   <p class="simpara">
    Se incrementó el soporte de versión mínima de lanzamiento de 3.7.7 a 3.7.17.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.readline">
   <h4 class="title">Readline</h4>

   <p class="simpara">
    Los tipos de retorno de <span class="function"><a href="function.readline-add-history.php" class="function">readline_add_history()</a></span>,
    <span class="function"><a href="function.readline-clear-history.php" class="function">readline_clear_history()</a></span>
    y <span class="function"><a href="function.readline-callback-handler-install.php" class="function">readline_callback_handler_install()</a></span> se han
    cambiado a <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span>, en lugar de <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.extensions.reflection">
   <h4 class="title">Reflection</h4>

   <p class="simpara">
    <span class="classname"><a href="class.reflectionconstant.php" class="classname">ReflectionConstant</a></span> ya no es final.
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.ini">
  <h3 class="title">Cambios en el manejo de archivos INI</h3>

  <div class="sect3" id="migration85.other-changes.ini.core">
   <h4 class="title">Núcleo</h4>

   <p class="simpara">
    Añadido fatal_error_backtraces para controlar si los errores fatales deben incluir
    un seguimiento de pila.
    
   </p>

   <p class="simpara">
    Añadida la configuración INI max_memory_limit, solo para el inicio, para controlar el máximo
    memory_limit que se puede configurar al inicio o durante la ejecución. Si se supera
    este valor, se genera una advertencia, a menos que se establezca en -1, lo cual establece memory_limit al
    valor actual de max_memory_limit.
    
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.ini.opcache">
   <h4 class="title">Opcache</h4>

   <p class="simpara">
    Añadido opcache.file_cache_read_only para admitir un directorio
    <a href="opcache.configuration.php#ini.opcache.file-cache" class="link">opcache.file_cache</a> de solo lectura,
    para su uso con sistemas de archivos de solo lectura (p. ej., contenedores Docker de solo lectura).
    Se recomienda usarlo con <code class="literal">opcache.validate_timestamps=0</code>,
    <code class="literal">opcache.enable_file_override=1</code>
    y <code class="literal">opcache.file_cache_consistency_checks=0</code>.
   </p>

   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <span class="simpara">
     Es posible que se ignore una caché generada con una compilación diferente de PHP,
     una ruta de archivo diferente, o una configuración diferente
     (incluidas las extensiones que se cargan).
    </span>
   </p></blockquote>

   <p class="simpara">
    El valor predeterminado de
    <a href="opcache.configuration.php#ini.opcache.jit-hot-loop" class="link">opcache.jit_hot_loop</a>
    ahora es 61 (un número primo) para evitar que sea múltiplo del número de iteraciones
    del bucle.
    Se recomienda establecer este parámetro en un número primo.
   </p>

   <p class="simpara">
    Modificar <a href="opcache.configuration.php#ini.opcache.memory-consumption" class="link">opcache.memory_consumption</a>
    cuando OPcache SHM ya está configurado ahora informará correctamente un fallo
    en lugar de no hacer nada silenciosamente y mostrar valores engañosos en PHPInfo.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.ini.openssl">
   <h4 class="title">OpenSSL</h4>

   <p class="simpara">
    Añadido openssl.libctx
    para seleccionar el tipo de contexto de la biblioteca OpenSSL.
    Se puede usar un contexto de biblioteca personalizado para cada hilo o un único contexto de biblioteca global (predeterminado).
    Se puede utilizar una biblioteca libctx personalizada para cada hilo o una única biblioteca
    libctx global (predeterminada).
   </p>

  </div>

 </div>

 <div class="sect2" id="migration85.other-changes.performance">
  <h3 class="title">Rendimiento</h3>

  <div class="sect3" id="migration85.other-changes.performance.core">
   <h4 class="title">Núcleo</h4>

   <p class="simpara">
    Eliminados los OPcodes para comparaciones de identidad con valores booleanos, en particular
    para el patrón <code class="code">match(true)</code>.
   </p>

   <p class="simpara">
    Añadida especialización de OPcode para comparaciones <code class="code">=== []</code> y
    <code class="code">!== []</code>.
   </p>

   <p class="simpara">
    La creación de objetos de excepción ahora es mucho más rápida.
   </p>

   <p class="simpara">
    Las partes del código que utilizaban SSE2 se han adaptado para utilizar también SIMD
    con ARM NEON.
   </p>

   <p class="simpara">
    Se introdujo la máquina virtual TAILCALL, habilitada por defecto al compilar con Clang&gt;=19
    en x86_64 o aarch64. La máquina virtual TAILCALL es tan rápida como la máquina virtual HYBRID utilizada
    al compilar con GCC. Esto hace que los binarios de PHP compilados con Clang&gt;=19 sean tan rápidos como
    los binarios compilados con GCC. El rendimiento de la máquina virtual CALL, utilizada con otros
    compiladores, también ha mejorado considerablemente.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.intl">
   <h4 class="title">Intl</h4>

   <p class="simpara">
    Ahora se evita la creación de copias adicionales de strings al convertir strings
    para su uso en el intercalador.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.mbstring">
   <h4 class="title">MBString</h4>

   <p class="simpara">
    Las partes del código que utilizaban SSE2 se han adaptado para utilizar también SIMD
    con ARM NEON.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.opcache">
   <h4 class="title">Opcache</h4>

   <p class="simpara">
    Mejora del rendimiento en la recuperación de variables TLS en código compilado con JIT en compilaciones
    que no utilizan Glibc.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.reflection">
   <h4 class="title">Reflection</h4>

   <p class="para">
    Mejorado el rendimiento de los siguientes métodos:
    <ul class="simplelist">
     <li><span class="methodname"><a href="reflectionproperty.getvalue.php" class="methodname">ReflectionProperty::getValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.getrawvalue.php" class="methodname">ReflectionProperty::getRawValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.isinitialized.php" class="methodname">ReflectionProperty::isInitialized()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.isinitialized.php" class="methodname">ReflectionProperty::isInitialized()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.setvalue.php" class="methodname">ReflectionProperty::setValue()</a></span></li>
     <li><span class="methodname"><a href="reflectionproperty.setrawvalue.php" class="methodname">ReflectionProperty::setRawValue()</a></span></li>
    </ul>
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.spl">
   <h4 class="title">SPL</h4>

   <p class="simpara">
    Mejorado el rendimiento de los métodos y accesores de dimensiones de
    <span class="classname"><a href="class.splfixedarray.php" class="classname">SplFixedArray</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.standard">
   <h4 class="title">Estándar</h4>

   <p class="simpara">
    Mejorado el rendimiento de las funciones array con funciones de devoluciones de llamada
    (<span class="function"><a href="function.array-find.php" class="function">array_find()</a></span>, <span class="function"><a href="function.array-filter.php" class="function">array_filter()</a></span>,
    <span class="function"><a href="function.array-map.php" class="function">array_map()</a></span>, <span class="function"><a href="function.usort.php" class="function">usort()</a></span>, ...).
   </p>

   <p class="simpara">
    Mejorado el rendimiento de <span class="function"><a href="function.urlencode.php" class="function">urlencode()</a></span> y
    <span class="function"><a href="function.rawurlencode.php" class="function">rawurlencode()</a></span>.
   </p>

   <p class="simpara">
    Mejorado el rendimiento de <span class="function"><a href="function.unpack.php" class="function">unpack()</a></span> con repeticiones sin nombre
    al evitar la creación de strings temporales y su posterior análisis.
   </p>

   <p class="simpara">
    Mejorado el rendimiento de <span class="function"><a href="function.pack.php" class="function">pack()</a></span>.
   </p>

   <p class="simpara">
    Mejoras menores en el rendimiento de <span class="function"><a href="function.array-chunk.php" class="function">array_chunk()</a></span>.
   </p>

  </div>

  <div class="sect3" id="migration85.other-changes.performance.xml">
   <h4 class="title">XML</h4>

   <p class="simpara">
    Mejorado el rendimiento del acceso a las propiedades de <span class="classname"><a href="class.xmlreader.php" class="classname">XMLReader</a></span>.
   </p>

   <p class="simpara">
    Mejorado el rendimiento de <span class="classname"><a href="class.xmlwriter.php" class="classname">XMLWriter</a></span> y consumo de
    memoria reducido.
   </p>

  </div>

 </div>

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