2012-04-25 17 views
7

Come sappiamo, parola chiave globale rende variabile (o un oggetto, un array) visibile all'interno funzione attuale abbiamo a che fare conparola chiave globale al di fuori della funzione php

<?php 

$some_var = 'some string'; 

function __test(){ 
    global $some_var; 
    echo $some_var; // some string 
} 

Ma alcuni di dev ancora usare la parola chiave globale al di fuori delle funzioni a prima vista non ha senso per me.

Bene, la domanda è: ha senso utilizzare la parola chiave 'globale' al di fuori della funzione ???

+0

Sei sicuro dello scopo che viene utilizzato? –

+0

Ho visto anche nel file index.php, "global $ some_var" - in realtà non sarà mai all'interno di alcuna funzione. Sono sicuro dello scope – Yang

+0

@metal_fan. Sospetto che tu abbia visto il coraggio di una funzione in un file separato. – Sampson

risposta

7

Dal docs:

Utilizzando parole chiave globale al di fuori di una funzione non è un errore. Può essere utilizzato se il file è incluso all'interno di una funzione.

In sostanza si potrebbe avere il coraggio della funzione in un file diverso rispetto alla dichiarazione di funzione. Queste viscere sarebbero quindi incluse nella funzione. Ciò darebbe l'impressione, se si visualizza il budello da solo, di un utente che utilizza global all'esterno di una funzione, tuttavia il fatto è che quando questo codice viene interpretato, verrà interpretato da all'interno di una funzione.

$name = "Jonathan"; 

function doSomething() { 
    include('functionGuts.php'); 
} 

Dove il contenuto del nostro file functionGuts.php potrebbero essere:

global $name; 
echo "Hello, " . $name; 

Se vista da sola, functionGuts.php darà l'impressione che global viene utilizzato al di fuori di una funzione, quando in realtà si tratta di essere utilizzato in questo modo:

$name = "Jonathan"; 

function doSomething() { 
    global $name; 
    echo "Hello, " . $name; 
} 
0

parola chiave globale al di fuori delle funzioni non fa nulla. ma quel file potrebbe essere incluso in una funzione.

Un'altra cosa che non uso è rendere i miei codici leggibili e più strutturati. qualsiasi variabile a cui voglio accedere tramite la parola chiave globale in una funzione, la dichiaro usando globale nel file principale, quindi basta una rapida occhiata e so che è referenziata da qualche parte come globale. (il che significa non rinominare comunque come altro è usato da qualche altra parte ... :))

Problemi correlati