PHP获取变量
⑴ php中如何读取环境变量
PHP中的环境变量可以通过 $_SERVER 获取
$_SERVER是一个包含服务器端相关信息的PHP全局环境变量,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。
下面是详细的说明及用法:
$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名,与 document root相关。在FORM表单中,如执行文件是本身,你可以在ACTION中使用$_SERVER['PHP_SELF'],好处是当执行文件名有变动时可以不去频繁替换ACTION中的文件名。
$_SERVER['SERVER_NAME'] 当前运行的PHP程序所在服务器主机的名称。
$_SERVER['REQUEST_METHOD'] 访问页面时的请求方法,即GET、HEAD、POST、PUT。
$_SERVER['DOCUMENT_ROOT'] 当前运行的PHP程序所在的文档根目录。也就是PHP.INI文件中的定义。
$_SERVER['HTTP_REFERER'] 链接到当前页面的前一页面的URL地址。在页面跳转功能中非常有用。
$_SERVER['REMOTE_ADDR'] 正在浏览当前页面访问者的IP地址。
$_SERVER['REMOTE_HOST'] 正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] 正在游览的用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径名。
$_SERVER['SERVER_PORT'] 服务器所使用的端口
$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] 访问此页面所需的URI。如“/index.html”。
$_SERVER['PHP_AUTH_USER'] 应用在HTTP用户登录认证功能中,这个变量是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] 应用在HTTP用户登录认证功能中,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] 应用在HTTP用户登录认证功能中,这个变量便是认证的类型。
备注:上述提到的这些PHP全局环境变量,在php.ini中的register_globals设置为on时,这些变量在所有PHP程序脚本中都可用,也就是$_SERVER数组被分离了。当然为了安全考虑,还是不要将register_globals打开为好。
⑵ 如何让PHP能够读取系统环境变量
一、fpm模式
1、通过服务器传递
如在nginx的配置里设置:
fastcgi_param ENV_XXX 123456;
每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。
2、通过fpm配置传递
fpm在每次启动时都会读取php-fpm.conf文件中的环境变量设置,如:
env[ENV_XXX]="test test"
或者让fpm读取系统环境变量,如:
env[ENV_XXX]=$ENV_XXX
注意此种方式要确保系统环境变量存在,且不被sudo禁用。
如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制:
vim /etc/sudoers
Defaults env_reset
Defaults env_keep = "ENV_XXX"
或者干脆放开所有限制:
Defaults !env_reset
最后,如果修改了php-fpm.conf中的设置需要重启fpm才能生效,同样php可以通过getenv函数或$_SERVER全局变量获得环境变量。
二、命令行模式
命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制。
⑶ php中,获取类里面函数的变量,的方法是
调用类中的函数的变量,外面是无法直接调用的。
要调用的话:
1、设置返回值
2、直接在函数输出
前2点@xulinjie1214 已经回答了
3、全局变量
<?php
$a=0;
class ab
{
function niya()
{
global $a;
$a=50+1;
}
}
$pp=new ab;
$pp->niya();
echo $a;
?>
⑷ php global可以获取函数外的变量,不可以获取函数内的变量!
php的global可以获取函数内的变量啊。你这知识哪里看的?但是前提是该函数必须执行过。没有执行过的话啥都不能访问
说明一下
PHP global 关键词
global 关键词用于访问函数内的全局变量。
要做到这一点,请在(函数内部)变量前面使用 global 关键词:
<?php
$y=10;
functionmyTest(){
global$y;
$y=15;
}
myTest();//要执行过才能访问
echo$y;//输出15
?>
⑸ PHP中如何获得变量名,同时输出多个变量的值。
显示变量名这个需求虽然很危险,但还是可以实现:
<?php
$a=compact($Keyword1,$Keyword2,$Keyword3);
print_r($a);