php全局常量
1. php中用define定义的常量是否全局有效
是全局有效的,还不要声明全局
常量有常量的好处,它不需要存储refcount,不需要垃圾回收机制,能节省下一些不必要的内存开销。
因此如果有一个不需修改的值,最好用常量
2. PHP Global变量定义当前页面的全局变量实现探讨
PHP
Global变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对PHP
Global变量出现的问题给出了一些具体的解决办法。
1:PHP
Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件
复制代码
代码如下:
$a=123;
function
aa()
{
Global
$a;
//如果不把$a定义为global变量
,函数体内是不能访问$a的
echo
$a;
}
aa();
总结:在函数体内定义的PHP
Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,
复制代码
代码如下:
$glpbal
$a;
$a=123;
function
f()
{
echo
$a;
//错误,
}
再看看下面一例
复制代码
代码如下:
function
f()
{
global
$a;
$a=123;
}
f();
echo
$a;
//正确,可以使用
2:PHP
Global变量问题解析:
question:我在config.inc.php中定义了一些变量($a),在别的文件中函数外部
include("config.inc.php"),函数内部需要使用这些变量$a,如果没有声明的话,echo
$a是打印不出来任何东西的。因此声明global
$a,但是有很多函数和很多变量,总不能不断重复的这样声明吧?有什么好的解决办法,请指点。
answer1:先在config.inc.php里定义常量:define(常量名,常量值),再在其他需要用到的地方require
'config.inc.php',然后就能在这个文件里直接使用这个常量了。
answer2:我也有个办法,就是定义数组,如$x[a],$x,那样就只要声明global
$x一个了。
answer3:我试了你的这个方法,不行啊。
answer4:改你的php.ini文件。
设置PHP
Global变量
为
on
3. PHP中用define定义的常量是否全局有效
define 是全局常量,当然对全局有效
4. php如何定义常量,系统常量和使用常量
定义常量
define('NAME','hello');
echoNAME;//hello
PHP 自 5.3 后可以直接通过 const 关键字来定义常量
constNAME='hello';
echoNAME;//hello
系统常量可以直接打印,如:
echo__DIR__;//当前执行文件的路径
echo__FILE__;//当前执行的文件地址及文件名
5. php如何是用define呢,让他起到全局的常量的作用
php中的define定义的是常量,不会修改的变量,因此,它们也是全局变量,在函数中可以访问,唯一的不同是,它是不能被修改的,只能访问。
6. thinkphp 5.0 怎么设置模版的全局变量【常量也行】
设置全局变量规则,全部路由有效:
//设置name变量规则(采用正则定义)
Route::pattern('name','w+');
//支持批量添加
Route::pattern([
'name'=>'w+',
'id'=>'d+',
]);
7. PHP中使用全局变量~呢
在方法体中使用全局变量可以有两种方式:
先在方法(函数)外面定义变量,在方法体中全局化这个变量 :global $abc
也可以在方法(函数)体中用$_GLOBALS['abc']
之后就可以在方法中调用这个变量了
8. PHP如何添加预定义常量或变量
常量使用define语句定义即可
全局变量可以定义到全局变量数组$GLOBALS中
参考手册 : http://php.net/manual/zh/rese...
看题主的问法,感觉"环境变量"可能符合题主要求
nginx配置PHP server的时候可以增加以下指令
fastcgi_param CUSTOM_ENV_VAR "my_env_value";
之后只要是通过nginx访问的PHP请求,在任何代码中中使用 $_SERVER['CUSTOM_ENV_VAR'] 就能取到你需要的值
又或者在fastcgi的配置文件中增加一行:
env[CUSTOM_ENV_VAR]="my_env_value"
之后只要是php-fastcgi处理的PHP文件,都可以通过 getenv('CUSTOM_ENV_VAR'); 来获取设置的值
如果题主确实打算不亲自define而要得到类似E_ALL那样的常量的话,就需要写点C了
题主可以新建一个自己的扩展(或者直接随便找个你会编译的扩展也行),在PHP_MINIT_FUNCTION中使用以下宏来定义自己的常量
REGISTER_STRINGL_CONSTANT("MY_SITE_VERSION", "1.0", 3, CONST_PERSISTENT);
之后重新编译PHP即可.
9. php变量定义方法
PHP语法吸收了C语言、java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
2.普通变量$a = "hello";
3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
6.给变量赋值:传地址赋值(简单引用):
$bar = &$foo; //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV : 执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的.变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
10. PHP:函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致
下面的信息,是来自互联网,我就直接粘贴在这里了
PHP的变量分不出是声明还是使用,($name
不管是声明还是使用都是一种形式,所以函数中要使用外部的变量就要使用global来确定函数中是使用外部的全局变量,而不是声明。
php常量默认就是全局的,常量只能定义一次,而且不可以改变。
而javascript声明变量使用关键字varname='hyr';
如果在函数中不声明就直接用全局的)
-------------------------------------------------------------------------------------------------
不使用global关键词,函数内$a是局部变量,全局的$a=10
;不会改变
<?php
$a=10;
functiontest()
{
$a=
20;
echo
$a;
}
test();//局部变量20
echo
"<br>";
echo$a;//全局变量10
?>
函数内使用global关键字声明$a就是外部全局的$a变量,
函数内global关键字声明的同时不能同时赋值
<?php
$a=10;
functiontest()
{
global
$a;//声明$a是外部的全局变量$a的同时不能赋值,赋值可以另外起一行赋值,如下行
$a
=20;//声明函数里使用的$a变量是来自函数外部声明的全局变量$a
echo
$a;
}
test();//结果为
20
echo
"<br>";
echo$a;//结果也是20
?>