php中的变量$GLOBALS,global,const,define,static

[ 2011-06-04 09:51:59 | 作者: admin ]
字号: | |
$GLOBALS 不定义变量,只是说明某变量是全局变量,那个变量是其它地方定义了的。如果在函数里面不使用$GLOBALS什么的变量都是局部变量,只有本函数内有效。
$GLOBALS['key'] = value;指的的是PHP当前页面的全局变量$key = value的引用,此值可以在PHP流程的任意地方改变,改变的是该全局变量,真正的全局引用。

golbal $key = value;一般用在函数内部,意思是申明变量$key,该变量是对外部$key的引用,值的改变会同时改变外部变量的值。效果和函数定义的时候采用&符号一致。


define定义的常量其实也没有定义变量(分配内存),这个东西类似C语言的#define、PASCAL语言的const,本质上是宏。

static定义的静态变量和PASCAL语言的静态变量概念意义,本质是局部变量,但是不在栈里面分配,也就是每次调用这个子程序的时候,变量的值是相同的。普通的局部变量是分配在栈里面的,每次访问子程序都是新分配的内存。



在老版本的PHP中:
define不能定义在类中,而const必须定义在类中,并且const必须通过类名::变量名来进行访问;
两者都是不能进行重新赋值。
新版本中有些变化,const也可以在类外定义和使用,以下内容来自PHP手册:

Example #1 定义常量
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // 输出 "Constant" 并发出一个提示性信息
?>


Example #2 使用关键字 const 定义常量
<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';

echo CONSTANT;
?>

[最后修改由 admin, 于 2020-05-14 22:16:10]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1691

这篇日志没有评论。

此日志不可发表评论。