PHP是一种HTML嵌入式的脚本语言。语法很灵活,混合了C、Java、Perl以及PHP自创新的语法。
1.常量:
如果一个值在程序执行过程中始终保存不变,就称为常量(Constant)。PHP中的常量可以是表示某一数值的字符或字符串,常被用来标识、测量和比较。
1)常量的声明和使用:
PHP默认约定常量的标识符总是大写,而且常量的作用范围是全局,可以在脚本的任何地方访问。合法的常量名以字母或下划线开始,后面跟任何字母、数字或下划线,字母总是大写。常量一旦定义,就不能再改变或者取消定义。常量只能包含单一类型的数据,如整型或者字符串。获取常量值时,需要指定常量的名字,但不需要加上$符号。PHP系统常量以__开头,自定义常量尽量不以__开头。
PHP中,使用define()函数定义常量,并能够赋值,语法格式为:
boolean define(string name, mixed value [, bool case_insensitive])
其中,name表示要定义的常量名称;value表示常量的值;case_insensitive表示在引用该常量时是否区分大小写,如果该值为true表示不区分大小写。
在PHP5.3以后版本中,可以使用const关键字在类定义的外部定义常量。一个常量一旦被定义,就不能再改变或者取消定义。
如果使用了一个未定义的常量,PHP假定想要的是该常量本身的名字,如图用字符串调用它一样(HELLO对应"HELLO"),同时将发出一个E_NOTICE级的错误。示例:
//合法的常量名
define("PI", "3.1415926");
define("MAXLENGTH", "100M");
define("TITLE", "PHP视频大全");
//PHP5.3之后新增的常量命名方式
const MIN_VALUE=0.0;
const MAX_VALUE=1.0;
?>
2)系统常量:
PHP为运行时的脚本提供了大量的预定义常量,简称系统常量。这些常量中的很多都是由扩展库定义的,只有在加载了这些扩展库时才会出现。
常量名
说明
注意
__file__
当前PHP程序文件名
前后都是双下划线
__line__
当前执行语句在PHP程序文件中的行数
前后都是双下划线
PHP_VERSION
当前PHP版本号
PHP必须大写
PHP_OS
当前所用操作系统类型
PHP必须大写
E_ERROR
指明最近一次产生不可恢复的错误
大写
E_WARING
指出有错误,但程序可以继续
大写
E_PARSE
语法错误,分析器将被停止分析
大写
E_NOTICE
产生异常,但不一定是错误,程序可以继续
大写
2.变量:
程序中使用最多的是变量,是在程序运行过程中随时可以发生变化的量,其值是临时的,当程序运行时存在,程序一旦结束,变量的值也随之丢失。
1)变量的命名规则:
在使用变量之前必须先创建,创建时首先需要定义变量的名称。PHP中,变量名区分大小写,并且必须以$符号开头,然后是变量名。
变量的命名规则:变量名必须以字母或下划线“_”开头;变量名只能包含字母、数字、字符以及下划线;变量名不能包含空格,如果变量名由多个单词组成,应用下划线分隔,或者以大写字母开头,如$my_php_root、$MyPHPRoot。变量名可以使用中文,但不推荐。
2)变量赋值:
PHP是一种弱类型语言,不需要显示声明变量,所以变量声明可以与赋值同时进行。变量赋值有两种方式。
①值赋值:
PHP的变量默认使用传值进行赋值,它将直接把一个数值通过赋值表达式(“=”)赋值给变量,然后该值将覆盖变量原来的值。当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响另外一个变量。
PHP会在运行时检查变量类型,而且允许同一变量使用不同类型的值。虽然PHP中并不需要初始化变量,但对变量进行初始化是个好习惯。未初始化的变量具有其类型的默认值,其中布尔类型的变量默认值是false,整型和浮点型变量默认值是零,字符串型默认值是空字符串,数组变量的默认值是空数组。示例:
$bookName="PHP编程基础实践教程";
$days=30;
$bookName=$days;
②引用赋值:
引用赋值是指所创建的变量与另一个变量引用的内容相同,当原始变量的内容变化时,新变量也会同时更新。使用方法为:在等号后面添加一个&符号,即“=&”,就可以完成引用赋值。
$city1="henan";
$city2=&$city1;
$city1="hunan";
3)可变变量:
可变变量是一种特殊类型的变量,它与变量的引用方式赋值非常类似,都可以动态地设置和使用。例如:
$str="hello";
可变变量是获取一个普通变量的值作为这个可变变量的名称。例如,使用两个$符号即可创建上面例子中的变量名称的可变变量。
$$str="world";
这就创建了两个变量,$str的值是“hello”,而$hello的值是“world”。
可以使用如下代码来进行输出:
echo "$str ${$str}";
也可以简化为:
echo "$str $hello";
输出结果都是:
hello world
4)系统变量:
PHP提供了大量的系统变量,其中许多变量依赖于运行服务器的版本、设置及其他因素。
变量名
说明
$GLOBALS
包含一个引用指向每个当前脚本的全局范围内有效的变量,该数组的键标为全局变量的名称
$_SERVER
变量由Web服务器设定或者直接与当前脚本的执行环境相关联
&_GET
经由HTTP GET方法提交至脚本的变量
$_POST
经由HTTP POST方法提交至脚本的变量
$_COOKIE
经由HTTP Cookies方法提交至脚本的变量
$_FILES
经由HTTP POST文件上传而提交至脚本的变量
$_ENV
执行环境提交至脚本的变量
$_REQUEST
经由GET、POST和COOKIE机制提交至脚本的变量
$_SESSION
当前注册给脚本会话的变量
$php_errormsg
前一个错误信息
$HTTP_RAW_POST_DATA
原生POST数据
$http_response_header
HTTP响应头
$argc
传递给脚本的参数数目
$argv
传递给脚本的参数数组
5)变量作用域:
变量作用域是指在变量声明之后它的有效作用范围。变量作用域与声明位置有关。
①局部变量:
局部变量的作用域与它声明的位置有关,并且只在指定的范围内有效。例如,在函数内声明的变量,作用域为整个函数;在类中声明的变量,作用域为整个类;如果超出函数或者类的范围就不能访问该变量,并且不可见。
②全局变量:
全局变量的作用域最大,可以在整个PHP程序中的任何地方访问。声明全局变量的关键字global,需要在函数内才能使用。
使用全局变量时一定要注意,一旦任何地方修改了全局变量的值,全局变量的值就发生了改变,这样很容易导致数据被意外修改。
③静态变量:
静态变量仅可以用在函数内,其值在函数退出时不会丢失,并且再次调用此函数时还能保留值。声明静态变量时需要使用static关键字。
利用静态变量在函数内有效的特性,可以实现递归函数功能。示例:
function test()
{
static $count=1;//使用静态变量声明初始值
echo $count;//输出
$count+=2;
if ($count<10) {//判断是否超出范围
test();
}
}
test();//调用test()函数
?>
上面的递归函数实现输出10以内的奇数。
④函数变量:
函数变量,指的是在创建函数时,放在函数名后面括号内声明的变量。函数变量只在函数内部有效,退出函数后就无法访问这些变量。示例:
function UserLogin($username)
函数参数也可以称为局部变量,因为这些参数只在函数内部起作用,在函数外部不能访问。