PHP变量与常量
来源:互联网 发布:天财商龙餐饮软件下载 编辑:程序博客网 时间:2024/05/21 07:54
全局变量
<?php$a = 1;$b = 2;function Sum(){ global $a, $b; $b = $a + $b;}Sum();?>在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成:
<?php$a = 1;$b = 2;function Sum(){ $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];}Sum();?>静态变量
变量范围的另一个重要特性是静态变量(staticvariable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。
<?phpfunction Test(){ static $count = 0; $count++; echo $count; if ($count < 10) { Test (); } $count--;}?>
可变变量
有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:
<?php
$a = "hello";
?>
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了。例如:
<?php
$$a = "world";
?>
这时,两个变量都被定义了:$a 的内容是“hello”并且$hello 的内容是“world”。因此,可以表述为:
<?php
echo "$a ${$a}";
?>
以下写法更准确并且会输出同样的结果:
<?php
echo "$a $hello";
?>
它们都会输出:hello world。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下$$a[1]时,解析器需要知道是想要$a[1]作为一个变量呢,还是想要$$a作为一个变量并取出该变量中索引为 [1]的值。解决此问题的语法是,对第一种情况用${$a[1]},对第二种情况用${$a}[1]。
注意可变变量不能用于 PHP 的超全局变量数组。这意味着不能这样用:${$_GET}。常量
常量前面没有美元符号($);
- 常量默认为大小写敏感。按照惯例常量标识符总是大写的。
常量只能用 define() 函数定义,而不能通过赋值语句;
和 superglobals 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方定义和访问常量;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量数据(boolean,integer,float 和 string)或 null。
1. 自定义常量
<?phpdefine("CONSTANT", "Hello world.");echo CONSTANT; // outputs "Hello world."echo Constant; // outputs "Constant" and issues a notice.?>
可以在类中定义常量,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。但在PHP5.6中,对常量进行了增强,允许常量计算,允许使用包 含数字、字符串字面值和常量的表达式结果来定义const常量。常量的值也可以为一个数组,但不能是变量。
定义类常量只能使用const关键字。
1、const用于类成员变量的定义,一经定义,不可修改。Define不可以用于类成员变量的定义,可用于全局常量。
2、Const可在类中使用,define不能
3、Const不能再条件语句中定义常量
4、const采用普通的常量名称,define可以采用表达式作为名称
- PHP 常量与变量
- 【php】常量与变量
- PHP 常量与变量
- PHP 变量与常量
- 【PHP】变量与常量
- PHP变量与常量
- PHP的变量与常量
- PHP常量与变量,函数
- PHP基本格式与PHP变量、常量
- 03~PHP 中的常量与变量
- PHP常量与变量的区别
- php初学者之常量与变量
- PHP基础----02常量与变量
- php学习02--常量与变量
- php中变量与常量的区别
- php中变量与常量的区别
- php-变量常量
- PHP 变量及常量
- ubuntu 14.04 编译内核提示mkimage command not found – U-Boot images
- Java经典五十道题21-30题
- Django学习
- C++ 中字符串的使用
- 513. Find Bottom Left Tree Value
- PHP变量与常量
- TNS:listener could not find available handler with matching protocol stack
- linux应急响应事件所需命令
- mvp part1 android-mvp-architecture
- svg图片转化为字体图片
- Android编译系统详解
- [NOIP2003]区间dp-加分二叉树
- 数据结构之顺序表排序问题
- sklearn 中的 Pipeline 机制