Impedir que una función se ejecute hasta que finalice la anterior (php)

Tengo la siguiente incidencia: tengo una función que va recogiendo información de un fichero y que rellena un array con toda esa información, y a continuación en otra función se modifica dicho array con más información. Lo que pasa es que cuando el fichero que se utiliza en la primera función es muy grande antes de que finalice de cargarse toda la información, se ejecuta la segunda función por lo que da errores ...

Ejemplo:

¿

<?php

      $a_personal=coger_informacion("datos.dat");

     modificar_array($a_personal);

¿

?>

Lo he probado con sleep(X) pero no ha funcionado, ya que lo suyo sería que "modificar_array" se llamase solo cuando $a_personal contenga información, o sea, cuando se haya terminado de ejecutar "coger_información".

¿Alguna solución?

2 respuestas

Respuesta
1

Pero no podrias meter un if con una sentencia? Es decir si algo se cumple entra a hacer la función sino hace lo demás.

¡Gracias!

No, no podría hacerlo, porque los datos de la primera función son importantes para la segunda, por lo que si no se ha generado no tiene sentido.

A ver si lo entiendo más o menos lo quieres hacer, pero siempre se puede modificar el código para adaptarlo. Al final en programación, se puede crear una misma cosas de muchas formas. Eso si la eficencia es lo que prima.

¡Gracias! 

Si, ya se, si algo no funciona de una manera, funcionará de otra.

De todas maneras, ya enconctré la solución, tal como indiqué en una respuesta propia, habían errores en los datos.

Saludos.

Respuesta

Al final no ha sido necesario hacer esa interrupción, el tema es que el fichero que funcionaba lo habia generado yo manualmente para hacer pruebas, y funcionaba, pero al usar el fichero generado "automáticamente" en el que los datos no los controlo yo, habían datos incorrectos, tema de claves que no existían, espacios en sitios donde no debían haber... Corregido todo eso, funciona correctamente.

La pregunta no admite más respuestas

Más respuestas relacionadas