En PHP, ¿cómo funciona include () exactamente?

¿Cómo se include('./code.php'); ¿trabajo? Entiendo que es el equivalente de tener el código “pegado” directamente donde ocurre la inclusión, pero, por ejemplo:

Si tengo dos páginas, page1.php y page2.php , de las cuales necesitaría manipular diferentes variables y funciones en ./code.php , ¿ include() crear una copia de ./code.php , o lo hace esencialmente? volver a la página actual ./code.php ?

Ver el manual .

Si include un archivo de texto, se mostrará como texto en el documento.

include no se comporta como copiar y pegar:

test.php

 < ?php echo '**'; $test = 'test'; include 'test.txt'; echo '**'; ?> 

test.txt

 echo $test; 

El ejemplo anterior dará como resultado:

 **echo $test;** 

Si va a incluir archivos PHP, aún necesita tener las tags PHP < ?php y ?> .

Además, normalmente los paréntesis no se include después de include , como este:

 include 'test.php'; 

Básicamente, cuando el intérprete golpea un include 'foo.php'; statement, abre el archivo especificado, lee todo su contenido, reemplaza el bit “incluir” con el código del otro archivo y continúa con la interpretación:

 < ?php echo "hello"; include('foo.php'); echo "world"; 

se vuelve (teórico)

 < ?php echo "hello"; ?> {CONTENT OF foo.php} < ?php echo "world"; 

Sin embargo, todo esto sucede solo en la memoria, no en el disco. No hay archivos cambiados ni nada.

Depende de cómo se incluya el archivo code.php . Si incluyes el archivo code.php en page1.php y luego page2.php, entonces tendrás acceso a sus vars y, de hecho, solo “copiarás y pegarás” (beaware que solo se usa para facilitar la comprensión ya que el real dinámica de eso se explica más arriba) el archivo en sin embargo si se vincula como:

 [code.php] include('page1.php'); include('page2.php'); 

Entonces code.php tendrá acceso a todas las variables dentro de page1.php pero:

  • page1.php no tendrá acceso a vars en code.php
  • page2.php no tendrá acceso a vars en code.php

Entonces, para inherit la funcionalidad de code.php, tanto en page1.php como en page2.php asegúrese de hacer algo como:

 [page1.php] include('code.php'); [page2.php] include('code.php'); 

Entonces funcionará como esperabas. Así que algo para recordar allí.

 include('./code.php'); // The Same As Pasting The Code From Code.PHP. 

No se redireccionará a Code.php en ningún caso.