接下来我整理一些PHP的语法知识。
变量
什么是变量
变量是存储信息的容器,也可以理解为内存中的一块空间的名称,在这块内存空间中存放着量,并且这些量在程序执行的过程中是可以改变的。当我们的数据在程序中不只一次被使用,那我们就可以把它定义为变量。
变量的声明
<?php
$a; //直接写出变量名
$b=23; //写出变量名并赋值初始化
$c=$d=$e=2; //多个变量同时赋相同的值
变量的命名规范
- 变量名以$开始,名称中以字母或下划线开头,后面可包含数字、字母、下划线
- 变量名禁止包含特殊字符,如:空格、斜杠(/)、反斜杠(\)等
- 变量名尽量做到见名知义,如:姓名变量用
$name
, 年龄变量用$age
等 - 变量名尽量采用驼峰格式(每个单词的首字母大写或着除第一个单词后面的每个单词首字母大写),如:
$userName
$UserName
- 变量名严格区分大小写,如:
$test
和$Test
是不同的变量
变量的使用
变量可以用来存值,可以参与各种运算,可以当做函数的参数,可以作为函数的返回值
<?php
$a=23; //变量的声明
$a=34; //变量的重新赋值
echo $a; //输出$a的值
function aaa($a){ //变量作为参数
$b=$a+1; //变量参与运算
return $b; //变量作为返回值
}
注:echo 不是函数,是一种语法结构,其后跟字符串和变量,可以将变量和字符串输出,如果是多个字符串用.连接,多个变量用,隔开。
变量的特殊用法
1.可变变量
以变量1的值作为另一个变量2的变量名,则可以以$$变量1来访问变量2,例如:
<?php
$a="hello";
$hello="world";
$world="hello world";
echo $a; //hello
echo $$a; //world
echo $$$a; //hello world
2.引用变量
我们先看一段代码
<?php
$a=20;
$b=&$a;
$b=30;
echo $a; //30
学过C语言的同学应该知道&是取地址符,在C语言里,$b=&$a;
这个语句的意思是将$a
的地址取出来赋给$b
,$b
里面就存着一个地址。而在PHP中,&这个符号只是将$a
和$b
两个变量指向了同一个内存空间,让他们都可以访问那个内存空间,相当于$b
是$a
一个别名。
超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。这些超全局变量是:
>$GLOBALS 引用全局作用域中可用的全部变量
$_SERVER 保存了关于报头、路径和脚本位置的信息
$_REQUEST 用于收集 HTML 表单提交的数据
$_POST 用于收集以post方式提交的 HTML 表单后的表单数据,也常用于传递变量
$_GET 用于收集以get方式提交 HTML 表单后的表单数据, 也可以收集 URL 中的发送的数据
$_FILES 保存了客户端上传的文件的各种信息
$_ENV 通过环境方式传递给当前脚本的变量的数组
$_COOKIE 过 HTTP Cookies 方式传递给当前脚本的变量的数组
$_SESSION 当前脚本可用 SESSION 变量的数组
常量
变量是可以改变的量,那常量则是不可改变的量。常量只能在声明后进行一次赋值,之后就不能再改变了。常量的命名跟变量有些区别,常量一般都用大写,以字母和下划线开头,包含数字、字母和下划线,并且不以$开始。常量的作用域是贯穿整个脚本,是自动全局的,变量会根据作用域的不同分为局部变量、全局变量和超全局变量。
自定义常量
在PHP中一般使用define()函数来定义常量,define()函数有三个参数:
1.首个参数定义常量的名称
2.第二个参数定义常量的值
3.第三个参数是可选的,规定常量名是否对大小写敏感。默认是 false,大小写敏感。
<?php
define("GREET", "Hello World!");//常量名区分大小写
echo GREET; //Hello World!
define("GREETING","Hello World!", true ); //常量名不区分大小写
echo greeting; //Hello World!
常用系统常量
_FILE_ 当前PHP文件名
_LINE_ 当前PHP文件中所在的行数
_FUNCTION_ 当前所执行的函数
_CLASS_ 当前所执行的类
PHP_VERSION PHP的版本
PHP_OS 当前服务器的操作系统
E_ERROR 到最近的错误处
E_WARNING 到最近的警告处
E_PARSE 语法有错误处
E_NOTICE PHP语言中有异常处
M__PI 圆周率