La
sentencia
require(
)
se
sustituye
a
sí
misma
con
el
archivo
especificado
,
tal
y
como
funciona
la
directiva
#include
de
C
.
Un
punto
importante
sobre
su
funcionamiento
es
que
cuando
un
archivo
se
incluye
con
include(
)
o
se
requiere
con
require(
)
)
,
el
intérprete
sale
del
modo
PHP
y
entra
en
modo
HTML
al
principio
del
archivo
referenciado
,
y
vuelve
de
nuevo
al
modo
PHP
al
final
.
Por
esta
razón
,
cualquier
código
dentro
del
archivo
referenciado
que
debiera
ser
ejecutado
como
código
PHP
debe
ser
encerrado
dentro
de
etiquetas
válidas
de
comienzo
y
fin
de
PHP
.
require(
)
no
es
en
realidad
una
función
de
PHP
;
es
más
una
construcción
del
lenguaje
.
Está
sujeta
a
algunas
reglas
distintas
de
las
de
funciones
.
Por
ejemplo
,
require(
)
no
esta
sujeto
a
ninguna
estructura
de
control
contenedora
.
Por
otro
lado
,
no
devuelve
ningún
valor
;
intentar
leer
un
valor
de
retorno
de
una
llamada
a
un
require(
)
resulta
en
un
error
del
intérprete
.
A
diferencia
de
include(
)
,
require(
)
siempre
leerá
el
archivo
referenciado
,
incluso
si
la
línea
en
que
está
no
se
ejecuta
nunca
.
Si
se
quiere
incluir
condicionalmente
un
archivo
,
se
usa
include(
)
.
La
sentencia
conditional
no
afecta
a
require(
)
.
No
obstante
,
si
la
línea
en
la
cual
aparece
el
require(
)
no
se
ejecuta
,
tampoco
se
ejecutará
el
código
del
archivo
referenciado
.
De
forma
similar
,
las
estructuras
de
bucle
no
afectan
la
conducta
de
require(
)
.
Aunque
el
código
contenido
en
el
archivo
referenciado
está
todavía
sujeto
al
bucle
,
el
propio
require(
)
sólo
ocurre
una
vez
.
Esto
significa
que
no
se
puede
poner
una
sentencia
require(
)
dentro
de
una
estructura
de
bucle
y
esperar
que
incluya
el
contenido
de
un
archivo
distinto
en
cada
iteración
.
Para
hacer
esto
,
usa
una
sentencia
include(
)
.
When
a
file
is
require(
)
ed
,
the
code
it
contains
inherits
the
variable
scope
of
the
line
on
which
the
require(
)
When
a
file
is
require(
)
ed
,
the
code
it
contains
inherits
the
variable
scope
of
the
line
on
which
the
require(
)
occurs
.
Any
variables
available
at
that
line
in
the
calling
file
will
be
available
within
the
called
file
.
If
the
require(
)
occurs
inside
a
function
within
the
calling
file
,
then
all
of
the
code
contained
in
the
called
file
will
behave
as
though
it
had
been
defined
inside
that
function
.
If
the
require(
)
ed
file
is
called
via
HTTP
using
the
fopen
wrappers
,
and
if
the
target
server
interprets
the
target
file
as
PHP
code
,
variables
may
be
passed
to
the
require(
)
ed
file
using
an
URL
request
string
as
used
with
HTTP
GET
.
This
is
not
strictly
speaking
the
same
thing
as
require(
)
ing
the
file
and
having
it
inherit
the
parent
file's
variable
scope
;
the
script
is
actually
being
run
on
the
remote
server
and
the
result
is
then
being
included
into
the
local
script
.
En
PHP3
,
es
posible
ejecutar
una
sentencia
return
dentro
de
un
archivo
referenciado
con
require(
)
,
en
tanto
en
cuanto
esa
sentencia
aparezca
en
el
ámbito
global
del
archivo
requerido
(
require(
)
)
.
No
puede
aparecer
dentro
de
ningún
bloque
(
lo
que
siginifica
dentro
de
llaves({})
)
.
En
PHP4
,
no
obstante
,
esta
capacidad
ha
sido
desestimada
.
Si
se
necesita
esta
funcionalidad
,
véase
include(
)
.
Ver
tambien
include(
)
,
require_once(
)
,
include_once(
)
,
readfile(
)
,
y
virtual(
)
.