Incompatibilidades con versiones anteriores
  
   Si bien casi todo el código existente en PHP5 debe funcionar sin realizar
   cambios, por favor, tenga en cuenta las siguientes incompatibiidades
   con respecto a versiones anteriores:
  
  
   - 
    
     La nueva API encargada de interpretar parámetros internos ha sido aplicada
     en todas las extensiones que incluye PHP 5.3.x. Esta API de interpretación
     de parámetros provoca que las funciones devuelvan NULLcuando se le proporcionen
     parámetros incompatibles. Existen algunas excepciones a esta regla, como la función
     get_class(), que seguirá devolviendoFALSEen caso de error.
- 
    
     clearstatcache() ya no limpia por omisión la caché de la ruta real.
    
   
- 
    
     realpath() ahora es completamente independiente
     de la plataforma. Como consecuencia, las rutas relativas inválidas como
     por ejemplo __FILE__ . "/../x" ya no funcionan.
    
   
- 
    
     La familia de funciones call_user_func() ahora propagan
     $this incluso en llamadas desde clases padre.
    
   
- 
    
     Las funciones de array natsort(),
     natcasesort(), usort(),
     uasort(), uksort(),
     array_flip(), y array_unique() ya
     no aceptan objetos como parámetros. Para poder realizarlo, primero debe
     convertir el objeto en un array.
    
   
- 
    
     Ha cambiado el comportamiento de funciones con parámetros por referencia llamados
     por valor. Donde antes se aceptaban parámetros por valor, ahora se emite
     un error fatal. Todo código anterior que proporcionara constantes o valores
     literales a funciones que esperan variables por referencia, necesitarán
     modificarse para asignar el valor a una variable antes de llamar a la función.
    
   
- 
    
     La nueva biblioteca mysqlnd necesita el uso del nuevo formato de contraseñas
     de 41 bytes de MySQL 4.1. Si se continua usando las antiguas contraseñas
     de 16 bytes, mysql_connect() y otras funciones similares
     emitiran el error, "mysqlnd cannot connect to MySQL 4.1+ using old
     authentication."
    
   
- 
    
     La nueva biblioteca mysqlnd no lee el fichero de configuración de mysql
     (my.cnf/my.ini), tal y como hacía la anterior biblioteca de libmysqlclient. Si su código
     depende de los ajustes de dicho fichero de configuración, puede cargarlo explícitamente
     con la función mysqli_options(). Tenga en cuenta que esto significa que
     las constantes específicas de PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILEyPDO::MYSQL_ATTR_READ_DEFAULT_GROUPno estarán definidas si el
     soporte de MySQL en PDO está compilado con mysqlnd.
- 
    
     La / final se ha eliminado de la clase SplFileInfo
     y de otras clases de directorios relacionadas.
    
   
- 
    
     El método mágico __toString
     ya no acepta parámetros.
    
   
- 
    
     Los métodos mágicos
     __get, 
     __set, 
     __isset, 
     __unset,y
     __call deben ser siempre públicos,
     y ya no pueden ser estáticos. La definición de estos métodos es obligatoria.
    
   
- 
    
     Ahora se invoca al método mágico __call
     cuando se accede a métodos privados y protegidos.
    
   
- 
    
     func_get_arg(), func_get_args() y
     func_num_args() ya no pueden ser llamados desde
     el ámbito de un fichero que se ha incluido llamando a
     include o require desde
     una función desde el fichero llamado.
    
   
- 
    
     Se ha añadido una capa que emula la extensión MHASH para envolver la
     extensión Hash. En cualquier caso, no cubre todos los algoritmos, a destacar
     el algoritmo de hash s2k. Esto significa que desde PHP 5.3.0 ya no está
     disponible el hash con s2k.
    
   
   Las siguientes palabras clave son ahora reservadas y no se pueden utilizar
   ni en nombres defunciones, ni de clases, etc.