PHP 7.2.0 Release Candidate 4 Released

$_ENV

$HTTP_ENV_VARS [kullanımdan kalktı]

$_ENV -- $HTTP_ENV_VARS [kullanımdan kalktı]Ortam değişkenleri

Açıklama

Ortam yönetimi kullanılarak geçerli betiğe aktarılan bütünleşik ortam değişkenleri dizisi.

Bu değişkenler PHP yazım denetleyicisinin çalıştığı ortamdan PHP'nin küresel isim alanına ithal edilir. Çoğu PHP'nin altında çalıştığı kabuk (shell) tarafından sağlanır. Farklı sistemler farklı türde kabuklar çalıştırırlar, bu bakımdan tam bir tanımlı ortam değişkenleri listesi verilemez. Lütfen tanımlı ortam değişkenleri listesi için kullandığınız kabuğun belgelerine bakınız.

Diğer ortam değişkenleri, CGI değişkenlerini içerir ve PHP'nin bir sunucu hizmeti olarak mı yoksa CGI işlemcisi olarak mı çalıştığına bakmaksızın yerleştirilirler.

$HTTP_ENV_VARS aynı başlangıç bilgisini içerir, fakat bir süper küresel değildir. ($HTTP_ENV_VARS ve $_ENV farklı değişkenlerdir ve PHP de bu şekilde ele alır.)

Sürüm Bilgisi

Sürüm: Açıklama
4.1.0 $_ENV ortaya çıkmış ve $HTTP_ENV_VARS kullanımdan kaldırılmıştır.

Örnekler

Örnek 1 - $_ENV örneği

<?php
echo 'Benim adım ' .$_ENV["USER"] . '!';
?>

Bu betiği "yasar" isimli kullanıcının çalıştırdığı varsayılarak

Yukarıdaki örnek şuna benzer bir çıktı üretir:

Benim adım yasar!

Notlar

Bilginize:

Bu bir süper küreseldir. Yani bir betiğin her yerinde geçerlidir. Değişkene işlevler ve yöntemlerin içinden erişmek için global $değişken; deyimine gerek yoktur.

Ayrıca Bakınız

add a note add a note

User Contributed Notes 7 notes

up
58
gabe-php at mudbugmedia dot com
7 years ago
If your $_ENV array is mysteriously empty, but you still see the variables when calling getenv() or in your phpinfo(), check your http://us.php.net/manual/en/ini.core.php#ini.variables-order ini setting to ensure it includes "E" in the string.
up
13
david at davidfavor dot com
5 years ago
Comments for this page seem to indicate getenv() returns environment variables in all cases.

For getenv() to work, php.ini variables_order must contain 'E'.
up
8
aasasdasdf at yandex dot ru
3 years ago
Please note that writing to $_ENV does not actually set an environment variable, i.e. the variable will not propagate to any child processes you launch (except forked script processes, in which case it's just a variable in the script's memory). To set real environment variables, you must use putenv().

Basically, setting a variable in $_ENV does not have any meaning besides setting or overriding a script-wide global variable. Thus, one should never modify $_ENV except for testing purposes (and then be careful to use putenv() too, if appropriate).

PHP  will not trigger any kind of error or notice when writing to $_ENV.
up
9
anonymous
7 years ago
If $_ENV is empty because variables_order does not include it, it will be filled with values fetched by getenv().

For example, when calling getenv("REMOTE_ADDR"), $_ENV['REMOTE_ADDR'] will be defined as well (if such an environment variable exists).
up
5
php at isnoop dot net
7 years ago
If you wish to define an environment variable in your Apache vhost file, use the directive SetEnv.

SetEnv varname "variable value"

It is important to note that this new variable will appear in $_SERVER, not $_ENV.
up
1
Tit Petric
5 months ago
If you're using php-fpm you might want to set `clean_env = no`. This setting cleans the environment variables by default, meaning that PHP would be started with a clean environment.
up
-12
ewilde aht bsmdevelopment dawt com
8 years ago
When running a PHP program under the command line, the $_SERVER["SERVER_NAME"] variable does not contain the hostname. However, the following works for me under Unix/Linux and Windows:

<?php
if (isset($_ENV["HOSTNAME"]))
   
$MachineName = $_ENV["HOSTNAME"];
else if  (isset(
$_ENV["COMPUTERNAME"]))
   
$MachineName = $_ENV["COMPUTERNAME"];
else
$MachineName = "";
?>
To Top