Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/04/2004, 09:21
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Veamos, un include() significa incluir el codigo del fichero dentro del principal. Asi que incluir 2 veces el mismo fichero es mas o menos lo mismo que escribir dos veces el mismo codigo:
Código PHP:
$a 'pp';
$b 'bb';

$a 'pp';
$b 'bb'
Es codigo valido, pero no bueno.

Lo normal es que un fichero solo se tenga que incluir una vez, asi que con include() valdria. Pero hay excepciones en que para simplificar las cosas un fichero se puede incluir varias veces, para esos casos son los include_once.

Pongamos un ejemplo. Tienes en funciones.php:
Código PHP:
function link($url,$texto) {
  return 
'<a href="'.$url.'">'.$texto.'</a>';

y luego tienes en listado_clientes.php:
Código PHP:
include('funciones.php');

$array=array('cliente1','cliente2');
foreach (
$array as $item) {
  echo 
link($item.'.html',$item);

Y mensajes.php
Código PHP:
include('funciones.php');

$array=array('mensaje1','mensaje2');
foreach (
$array as $item) {
  echo 
link('mensajes.php?id='.$item,$item);

Y listado_clientes.php lo incluyes en index, clientes y pedidos. Y mensajes.php lo incluyes en index y foro.

Tal como esta, te daria error en el index. Entonces la solucion seria poner include_once('funciones.php'). Otra opcion seria sacar el include de ese fichero e incluirlo en index, clientes, pedidos y foro.

Lo normal es saber de antemano que ficheros van a ser (o pueden ser) incluidos mas de una vez para una pagina, y cuales no tienen por que incluirse mas de una vez. Para los primeros usas include_once y para los segundos include.

Y como profesor, diria que uses por norma include, y en las excepciones mensionadas el include_once. Hay saber equilibrar comodidad con correccion. Podrias usar include_once para todo y olvidarte del tema. Y un profesor suspenderte, aunque no consuma mas que con include().

Todo es cuestion de diseñar bien la aplicacion, conociendo bien lo que hace las dos opciones y sabiendo lo que supone cada opcion.

No hay opcion correcta, todo depende de la situacion concreta. Solo con la experiencia aprenderas cuando usar uno u otro. Yo todavia me equivoco a veces

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.