<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mbstring.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'mbstring.overload.php',
    1 => 'Funci&oacute;n de sobrecarga',
    2 => 'Funci&oacute;n de sobrecarga',
  ),
  'up' => 
  array (
    0 => 'book.mbstring.php',
    1 => 'Strings multibyte',
  ),
  'prev' => 
  array (
    0 => 'mbstring.supported-encodings.php',
    1 => 'Juegos de caracteres soportados',
  ),
  'next' => 
  array (
    0 => 'mbstring.php4.req.php',
    1 => 'Requerimientos para la codificaci&oacute;n de caracteres en PHP',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mbstring/overloading.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mbstring.overload" class="chapter">
 <h1 class="title">
  Función de sobrecarga
 </h1>


 <div class="warning"><strong class="warning">Advertencia</strong><p class="simpara">
 Esta funcionalidad está <em>OBSOLETA</em> a partir de PHP 7.2.0,
 y <em>ELIMINADA</em> a partir de PHP 8.0.0.
 Depender de esta funcionalidad está altamente desaconsejado.
</p></div>

 <p class="para">
  Puede resultar difícil lograr que una aplicación PHP existente
  funcione en un entorno multibyte determinado. Esto se debe a que la mayoría
  de las aplicaciones PHP están escritas con funciones de string estándar
  como <span class="function"><a href="function.substr.php" class="function">substr()</a></span>, que es conocida por
  no manejar correctamente los strings codificados en multibyte.
 </p>
 <p class="para">
  mbstring admite la sobrecarga de funciones, lo que permite añadir
  compatibilidad con multibyte a este tipo de aplicaciones sin
  modificar el código, mediante la sobrecarga de las funciones equivalentes para multibyte en
  las funciones de string estándar. Por ejemplo,
  si la sobrecarga de funciones está habilitada,
  se llama a <span class="function"><a href="function.mb-substr.php" class="function">mb_substr()</a></span>
  en lugar de a <span class="function"><a href="function.substr.php" class="function">substr()</a></span>.
  Esta característica facilita la migración de aplicaciones que solo admiten
  codificaciones de un solo byte a un entorno multibyte en muchos casos.
 </p>
 <p class="para">
  Para utilizar la sobrecarga de funciones, establezca
  <code class="literal">mbstring.func_overload</code>, en el <var class="filename">php.ini</var>, a
  un valor positivo que represente una combinación de máscaras de bits especificando
  las categorías de funciones a sobrecargar. Debe ser definido
  a 1 para sobrecargar la función <span class="function"><a href="function.mail.php" class="function">mail()</a></span>, 2 para las
  funciones de strings, 4 para las funciones de expresiones regulares. Por ejemplo,
  con el valor 7, todas las funciones anteriores serán
  sobrecargadas. A continuación se muestra la lista de funciones sobrecargadas.
  <table class="doctable table">
   <caption><strong>Funciones de reemplazo</strong></caption>
   
    <thead>
     <tr>
      <th>Valor de mbstring.func_overload</th>
      <th>Función original</th>
      <th>Función de reemplazo</th>
     </tr>

   </thead>

   <tbody class="tbody">
     <tr>
      <td>1</td>
      <td><span class="function"><a href="function.mail.php" class="function">mail()</a></span></td>
      <td><span class="function"><a href="function.mb-send-mail.php" class="function">mb_send_mail()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strlen.php" class="function">strlen()</a></span></td>
      <td><span class="function"><a href="function.mb-strlen.php" class="function">mb_strlen()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strpos.php" class="function">strpos()</a></span></td>
      <td><span class="function"><a href="function.mb-strpos.php" class="function">mb_strpos()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strrpos.php" class="function">strrpos()</a></span></td>
      <td><span class="function"><a href="function.mb-strrpos.php" class="function">mb_strrpos()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.substr.php" class="function">substr()</a></span></td>
      <td><span class="function"><a href="function.mb-substr.php" class="function">mb_substr()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strtolower.php" class="function">strtolower()</a></span></td>
      <td><span class="function"><a href="function.mb-strtolower.php" class="function">mb_strtolower()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strtoupper.php" class="function">strtoupper()</a></span></td>
      <td><span class="function"><a href="function.mb-strtoupper.php" class="function">mb_strtoupper()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.stripos.php" class="function">stripos()</a></span></td>
      <td><span class="function"><a href="function.mb-stripos.php" class="function">mb_stripos()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strripos.php" class="function">strripos()</a></span></td>
      <td><span class="function"><a href="function.mb-strripos.php" class="function">mb_strripos()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strstr.php" class="function">strstr()</a></span></td>
      <td><span class="function"><a href="function.mb-strstr.php" class="function">mb_strstr()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.stristr.php" class="function">stristr()</a></span></td>
      <td><span class="function"><a href="function.mb-stristr.php" class="function">mb_stristr()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.strrchr.php" class="function">strrchr()</a></span></td>
      <td><span class="function"><a href="function.mb-strrchr.php" class="function">mb_strrchr()</a></span></td>
     </tr>

     <tr>
      <td>2</td>
      <td><span class="function"><a href="function.substr-count.php" class="function">substr_count()</a></span></td>
      <td><span class="function"><a href="function.mb-substr-count.php" class="function">mb_substr_count()</a></span></td>
     </tr>

    </tbody>
   
  </table>

 </p>
 <blockquote class="note"><p><strong class="note">Nota</strong>: 
  <p class="para">
   No se recomienda utilizar la opción de sobrecarga de funciones en
   el contexto por directorio, ya que aún no se ha confirmado que sea
   lo suficientemente estable en un entorno de producción y puede provocar un
   comportamiento indefinido.
  </p>
 </p></blockquote>
</div>
<?php manual_footer($setup); ?>