Quando devo suare getenv('REMOTE_ADDR') e quando $_SERVER['REMOTE_ADDR']?
Cosa cambia (apprate il fatto che la prima è una funzione e la seconda una variabile)?
Quando devo suare getenv('REMOTE_ADDR') e quando $_SERVER['REMOTE_ADDR']?
Cosa cambia (apprate il fatto che la prima è una funzione e la seconda una variabile)?
Sono equivalenti se non per il fatto che una è una funzione e l'altra è una variabile superglobal. La funzione accetta paramtri case insesitive, quindi per la funzione REMOTE_ADDR e remote_addr sono la stessa cosa, ed in più se sbagli a scrivere e cerchi di accedere ad un argomento che non esiste la funzione ti restituisce FALSE invece di ridarti il nulla che come ben sai è apparentemente uguale a 0 o "" ma puoi discriminare dai precedenti con l'operatore di confronto ===
L'alternativa sarebbe applicare la funzione isset alla superglobal se vuoi verificare l'accesso errato all'inesistente.
nella controparte della funzione getenv, ovvero in putenv, c'è un esempio che dimostra come l'elenco della superglobal e quello a cui accede la funzione, sebbene identici all'inizio, siano poi indipendenti l'uno dall'altro. Per cui, se modifichi la superglobal non alteri i valori di getenv, mentre se utilizzi putenv non alteri i valori della superglobal.
![]()