2010-08-24 31 views
11

¿Hay alguna manera posible cuando en un archivo? Tenga en cuenta, solo un archivo. Llamar a una función cuando aún no está definida, p.Llamar a una función antes de definirla | PHP

<?php 

echo global_title(); 

function global_title() 
{ 
    $title = $_GET['name']; 

    return $title; 
} 

?> 

No sé cómo explicar esto, pero no es muy posible que no lo es? ¿Qué pasa con la variable de otro archivo (sin incluirlo) se puede llamar en un archivo diferente, p.

config.php

<?php 

$db = "localhost"; 

?> 

index.php

<?php 

// I do not want it to be accessed by including it or using sessions 

echo $db; 

?> 

sabes lo que significa? :)

+2

has necesitado su código todavía? –

Respuesta

24

Puede llamar a una función que se define después de llamarlo. Eso es porque PHP primero analiza el archivo y luego lo ejecuta.

En cuanto a la variable, esto no es posible, debe incluir el archivo.

+9

Bueno, las funciones que no están encerradas en un condicional (como un 'si') están disponibles después de la compilación de ese archivo. Las variables solo están disponibles después de que la ejecución llegue a esa línea ... – ircmaxell

+0

@ircmaxell nota interesante, ¿por qué alguien definiría una función dentro de una declaración if? ¿No sería mejor evaluar cualquier cosa que la afirmación if esté evaluando dentro de la función? –

+1

@DougMolineux, lea sobre la compilación condicional. Básicamente, si no es necesario procesar la función, no lo haga. – Pacerier

1

No puede llamar a la función indefinida, se producirá un error fatal. aunque en el código de procedimiento se puede llamar y luego definir. Como el script primero se analiza y luego se ejecuta. incluye no importa, se comportan como si estuvieran escritos en el archivo exacto.

no existe la variable "de un archivo". si el código define que la variable no se ejecuta, no puede estar allí.

2

Acabo de descubrir que puede llamar a una función si está definida más adelante en el mismo archivo.
Pero si está definido en otro archivo, debe incluir el archivo antes de llamar a la función.

my_func(); 
function my_func() {...} 
---> No problem 

pero

my_func(); 
include_once 'define_my_func.php'; 
---> PHP Fatal error 

Es como una función condicional como en el ejemplo 2 en el doc en user-defined functions

Cuestiones relacionadas