日期:2014-05-17 浏览次数:20504 次
$a = 123;
define('A', 123);
function func1() {
echo $a; //Notice: Undefined variable: a
}
function func2() {
echo A; //123
}
func1();
func2();
$GLOBALS['a']='aa';
function abc(){
echo $GLOBALS['a'];
}
abc();
Define('D','DD');
$b='bbb';
$GLOBALS['a']='aa';
function abc(){
Global $b;//如果不加入这一行,下边的行一定出错,这就是变量的作用范围了.
echo $b;
echo $GLOBALS['a'];
Echo D;
$c='ccc';
}
abc();
Echo D;
Echo $c;//這行一定出錯,因為$c聲明的時候作用範圍是在function內
typedef struct _zend_constant {
zval value;//常量的值
int flags; //CONST_PERSISTENT(跨进程持续存在)
------解决方案--------------------
CONST_CS(大小写敏感)
------解决方案--------------------
CONST_CT_SUBST(允许编译时被替代)
char *name;//常量名
uint name_len;//名称长度
int module_number;//常量模块号,由用户定义的常量,此属性会被初始化为PHP_USER_CONSTANT
} zend_constant;
struct _zval_struct {
/* Variable information */
zvalue_value value; //变量值
zend_uint refcount__gc; //引用计数,gc会根据此值来决定是否回收内存
zend_uchar type; //变量类型
zend_uchar is_ref__gc; //是否是一个引用
};