Duda PHP con include("pagina.php")

Iniciado por LucasHood, 27 Agosto 2016, 12:04 PM

0 Miembros y 1 Visitante están viendo este tema.

LucasHood

Buenas, no llevo mucho tiempo con PHP, así que igual sabéis guiarme en esto.

- Tengo tres páginas: 'vehiculo.php', 'cliente_vehiculo.php', 'test_cliente.php'.

1. vehiculo.php tiene varias clases: Vehiculo{}, Coche extends Vehiculo {}, Moto extends Vehiculo {}, etc. Y todo funciona perfectamente.

2. cliente_vehiculo.php tiene la clase Cliente{}, en la que recibe nombre, identidad, se crea con cero vehiculos alquilados, etc... y luego función boolean de ha_alquilado_vehiculo(), alquilar vehiculo($vehiculo), devolver_vehiculo($vehiculo), etc. Y todo funciona perfectamente.

3. test_cliente.php es para hacer pruebas. Crea objetos Cliente, crea objetos Vehiculo y los alquila, devuelve, etc...

MI DUDA: En 'test_cliente.php' tengo include("vehiculo.php") e include("cliente_vehiculo.php") y funciona genial. Pero si pongo include ("vehiculo.php") en cliente_vehiculo.php también (y lo veía lógico porque las funciones de esa clase trabajan también con objetos de Vehiculo para alquilarlos, compararlos, etc.), entonces la página test_cliente.php se queda en blanco. Y si vuelvo a quitar el include("vehiculo.php") de cliente_vehiculo.php entonces vuelve a funcionar a las mil maravillas.

¿No necesita cliente_vehiculo.php incluir las clases de vehiculo.php? ¿Sólo tienen que estar en test_cliente.php? ¿Por qué?

Muchas gracias, y perdonad si no me he expresado bien o si es lioso. Si necesitáis código hacédmelo saber.
Gracias.

user-marcos

Es la segunda vez que te leo que pones que te sale la página en blanco. Puedes configurar php, para que te muestre errores, es decir no se te quedará en blanco y te indicara en que línea tienes el fallo.
Este fallo supongo que estarás redundando algún include. Para comprobarlo temporalmente puedes usar include_once.

LucasHood

Cita de: user-marcos en 27 Agosto 2016, 13:52 PM
Es la segunda vez que te leo que pones que te sale la página en blanco. Puedes configurar php, para que te muestre errores, es decir no se te quedará en blanco y te indicara en que línea tienes el fallo.
Este fallo supongo que estarás redundando algún include. Para comprobarlo temporalmente puedes usar include_once.

Sí. La primera ya lo arreglé! :/ La segunda no es que no funcione. Si pongo los include("vehiculo.php") e include("cliente_vehiculo.php") en la página test_cliente.php, funciona la perfección y no sale en blanco. Sólo sale en blanco si añado include("vehiculo.php") en la página cliente_vehiculo.php.
Y mi pregunta es: aunque cilente_vehiculo.php llame o use funciones de vehiculo, ¿no necesita incluir a vehiculo? Sin incluirlo el test funciona perfectamente.

Gracias.

Zeros1001

Necesitas incluirlo o no dependiendo de si estás utilizando MVC o no, porque si siempre pasas por un controlador frontal y allí los incluyes, no necesitas generarlo de nuevo.

Lo mejor sería que posteases el código de los 3 scripts o al menos las líneas de include de los mismos.

Saludos!