PHP常量
1.声明和使用常量
常量可以理解为值不变的变量。常量值被定义后,在脚本的其他任何地方都不能改变。常量通常具有如下的属性:
●常量区分大小写,在定义的时可以指定是否大小写敏感。
●其命名的规则和变量一样
●常量的开头字母只能是字母和下划线,后面可以接任意个数的字母字符。
●默认的情况下,它的作用域是全局的,即在当前当前脚本的任何地方都可以使用。
●已定义常量的名称不能与再次定义的常量和变量的名称相同
●在定义常量时,应该尽可能使用大写字符,便于阅读和识别。
●常量的名称不能以字符$开头,它们的值只能是特定类型的:整数、浮点数、字符串和布尔值。
在PHP中通常使用define()函数来定义常量;使用constant()函数动态获取常量值;使用defined()函数判断一个常量是否已经定义;使用get_defined_constants()函数获取所有当前已经定义的常量。
define()函数
该函数用来定义常量
语法:define(string constant_name,mixed value,case_sensitive=true)
该函数有3个参数:
constant_name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
Case_sensitive:可选参数,指定是否大小写敏感,设定为true,表示不敏感。
例子:测试常量
<?php
//了解常量
//测试1:常量区分大小写
//define("aaa",22);
//define("AAA",26);
//echo aaa;
//echo "<br>";
//echo AAA;
//从输出结果可以看出常量是区分大小写的
//测试2:在定义时指定是否大小写敏感
//define("aaa",22,true);
//define("AAA",26,true);
//echo aaa;
//echo "<br>";
//echo AAA;
//从输出结果可以看出在将参数Case_sensitive设定为true后,大小写为不敏感!
//测试3:常量的命名
//define("3ads",89);
//echo 3ads;//输出:syntax error说明常量不能是数字开头
//define("_ads",89);
//echo _ads;//输出:syntax error说明常量可以是下划线开头
//define("a3_ds",89);
//echo a3_ds;//输出:syntax error说明常量可以是字母开头
/**
* 测试4:测试使用范围-常量一旦被声明将可以在全局可见,也就是说,它们可以在函数内外使用,
* 但是这仅仅限于一个页面之中(包含我们通过include和include_once)包含进来的PHP脚本,但是在其他的页面之中就不能使用了。
* 下面的测试都输出82,说明常量是全局可见的!
*/define的基本用法
//define("CONSTANT",82);
//echo CONSTANT;//函数外使用
//cl();//调用函数
//function cl()
//{
//echo CONSTANT;//函数内使用
//}
//header("location:cl.php");//自动跳转到cl.php页面
//cl.php页面代码
/**
* 测试常量在另一页面是否可用
include_once("index.php");//测试该步时,请将index.php页面的header注销,不然就成死循环了!!!
echo CONSTANT;
发现输出的是字符串CONSTANT,如果使用了一个未定义的常量(此处的CONSTANT相当于未定义),PHP 假定你想要的是该常量本身的名字,如同你用字符串调用它一样(CONSTANT 对应 "CONSTANT")。
*/
//测试5:已定义常量的名称不能与再次定义的常量和变量的名称相同
//$NAME="www";
//define("NAME","uuu");
//define("NAME","zzz");
//echo NAME;
//输出结果表明:如果已定义常量的名称与再次定义的常量和变量的名称相同,那么以第一个定义的常量为准!
//测试6:常量不能在程序执行过程中改变值
//define("CONSTANT",82);
//CONSTANT=2;//提示语法错误
//CONSTANT+=2;//提示语法错误
//define("CONSTANT",33);//没有问题
//echo CONSTANT;//输出仍为82,虽然脚本运行中利用define再次定义CONSTANT不会有语法错误,但是在脚本运行过程中常量是不会改变的!!!
?>
Constant()函数
获取指定常量的值,和直接使用常量名输出的效果是一样的。但函数可以动态地输出不同的常量,在使用上要灵活、方便的多。
语法:mixed constant(string const_name)
参数const_name是要获取常量的名称,也可是存储常量名的变量。如果成功返回常量的值,失败则提示错误信息常量没有被定义。
例子:使用Constant()函数获取指定常量的值
<?php
//使用Constant()函数获取指定常量的值
define("MESSAGE","php");
echo constant("MESSAGE");//括号中必须加引号,需要用echo输出
$name="MESSAGE";
echo constant($name);//参数是存储常量名的变量
?>
defined()
判断一个常量是否已经被定义。
语法:bool defined(string constant_name);
参数constant_name为要获取常量的名称,成功返回true,否则返回false。
例子:defined函数的使用
<?php
//defined函数的使用
define("MESSAGE","php");
if (defined("MESSAGE"))
{
echo "常量MESSAGE已被定义!";
}
else echo "未被定义!";
if (defined("ONE"))
{
echo "常量ONE已被定义!";
}
else echo "未被定义!"
?>
预定义常量
PHP中可以使用预定义常量获取PHP中的信息。常用的预定义常量有:
__FILE__ PHP程序文件名。
PHP_VERSION PHP程序的版本。
PHP_OS 执行PHP解析器的操作系统名称。
TRUE 真值。
FALSE 假值。
NULL 空值。
注意: __FILE__ 中的”__”是两条下划线,不是一条
例子:预定义常量的使用
<?php
//例子:预定义常量的使用
echo "当前文件路径:".__FILE__;//会输出当前文件的详细路径
echo "<br />";
echo "当前PHP版本信息:".PHP_VERSION;
echo "<br />";
echo "当前操作系统:".PHP_OS;
?>
PHP变量
变量是指在程序执行过程中其值可以变化的量变量通过一个名字(变量名)来标识。系统为程序中的每一个变量分配一个存储单元,变量名实质上就是计算机内存单元的命名。因此,借助变量名就可以访问内存中的数据。
1.理解变量
和很多语言不同,在PHP中使用变量之前不需要声明,只需为变量赋值即可。PHP中的变量名称用$和标识符表示。
2.声明变量(详见标识符部分)
PHP中的变量用“$”加变量名来表示。变量名区分大小写。
使用变量时,只需对变量直接赋值即可。变量赋值,是指给变量一个具体的数据值,对于字符串和数字类型的变量,可以通过“=”来实现。
例如:$name=“zzz”;
除了直接赋值外,还有两种方式来给变量声明或赋值。一种是变量间的赋值,另一种是引用赋值。
例子:变量间的赋值
<?php
//例子:变量间的赋值
$str="php";
$str2=$str;
echo $str2;
?>
从PHP4.0开始,PHP引入了“引用赋值”的概念。就是说用变量给变量赋值后,当改变其中一个变量的值,另一个也跟着发生变化。有点像C语言里的指针,使用“&”符号来引用。
例子:引用赋值
<?php
//例子:引用赋值
$i="zhao";
$j="wang";
$j=&$i;//使用引用赋值,这时$j已经赋值成为zhao
$j="hello,$j";
echo $j;
echo "<br />";
echo $i;
//由于我们把$i的内存地址给了$j,所以我们修改$j就相当于修改了$i,所以$i随着$j的变化而变化
?>
3.变量的作用域
变量在使用时,要符合变量的定义规则。变量必须在有效范围内使用,如果超出有效范围,变量也就失去其意义了。变量的作用域有:
局部变量:也叫本地变量。即在函数的内部定义的变量,其作用域是所在的函数。因此,局部变量不能访问函数的外部或者其他函数的内部。
例子:了解局部变量
<?php
//例子:了解局部变量
$var="php";//一个函数外部的变量
function test(){
echo $var;//使用一个函数内部的变量
}
test();//调用函数,输出为空,说明函数内部不能使用外部的变量
echo $var;
?>
全局变量:函数外部的变量,通常称为全局变量。和其他语言不同,比如C语言中,全局变量是自动设定为可用的。在PHP中,函数内部不能自动地使用全局变量,要想在函数内部使用全局变量,可以使用关键字global将一个局部变量声明为全局的。
例子:了解全局变量
<?php
//全局变量
$var="php";//一个函数外部的变量
function test(){
global $var;//声明一个全局变量
echo $var;//输出
}
test();//调用函数,输出为PHP
?>
<?php
function a()
{
global $ac;
$ac=1;
b();
}
function b()
{
global $ac;
echo $ac;
}
a();
b();
//以上两种方式都可以输出$ac的值
?>
还可以利用预定义的全局变量数组$GLOBALS。$GLOBALS是一个特殊的变量,在程序运行时,自动创建。$GLOBALS数组中的元素与外部变量一一对应。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论