2010-11-09 14 views
17

Czy jest możliwe użycie stałej PHP w funkcji PHP?Czy mogę używać stałych w funkcjach PHP?

// in a different file 
DEFINE ('HOST', 'hostname'); 
DEFINE ('USER', 'username'); 
DEFINE ('PASSWORD', 'password'); 
DEFINE ('NAME', 'dbname'); 

// connecting to database 
function database() 
{ 
    // using 'global' to define what variables to allow 
    global $connection, HOST, USER, PASSWORD, NAME; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 
+0

dlaczego spadł na nowego użytkownika? – Herr

+0

@Herr nowy lub stary, ale najpierw musi poprawić swoje umiejętności frazowania. –

+12

poprawa umiejętności frazowania jest czymś, a zniechęcanie to coś zupełnie innego. nie bądź trollem – Herr

Odpowiedz

18

Nie trzeba zadeklarować je w global w funkcji PHP rozpoznaje je jako globalnych.

function database() 
{ 
    // using 'global' to define what variables to allow 
    global $dbc; 
    $connection = new mysqli(HOST, USER, PASSWORD, NAME) 
     or die ('Sorry, Cannot Connect'); 
    return $connection; 
} 

Od php.net:

Jak superglobals zakres stałej jest globalny. Możesz uzyskać dostęp do stałych w dowolnym miejscu skryptu bez względu na zasięg. Aby uzyskać więcej informacji na temat zakresu, przeczytaj sekcję podręcznika na temat variable scope.

+2

Po prostu przegłosowałem twoją odpowiedź, ale chciałbym zaznaczyć, że * php rozpoznaje je jako superglobale. * Powinno być * php rozpoznaje je jako globalne. * –

+1

10x naprawię to –

3

Czy próbowałeś go wypróbować? :)

Z manual:

Jak superglobals zakres z stałej jest globalny. Możesz uzyskać stałe o wartości w dowolnym miejscu skryptu bez względu na zasięg.

1

Tak, ale nie trzeba ich nazywać "globalnymi". Stałe są globalne. Jeśli otrzymasz unexpected T_STRING, expecting T_VARIABLE jako błąd, to dlatego, że nie oczekuje on stałych odniesień po "globalnej" instrukcji.

Powiązane problemy