◆php标记
●XML风格:(推荐使用)
?(不建议使用以下下风格)
●简短风格: 代码块 ?>
●Script风格:
●Asp风格:<% 代码块 %>
?所有的 PHP 语法均必须被包在里面,并且每一叙述要用「;」结束该叙
述例如: (echo用于向浏览器输出)
?所有的HTML标签在PHP中加双引或者单引
◆变量
?变量代表一个指向计算机内存位置的预留空间。在这个空间中,您可以储存一些在 script 执行过
程中会变动的程序信息。
?全局变量、局部变量、静态变量、可变变量、预定义变量(系统内置变量,具备一定的功能)
变量的命名:
●必须以字母开头。
●中间不能包含句点「.」。
●不能超过 255 个字符。
●在宣告的有效范围中必须唯一。
●通常会用有意义的单字做变量名称
●在使用时前面加上$ 符号以视区分
◆常量
?在程序运行时,不会被修改的量,另一层含义指它们的编码方法是不变的
?预定义常量 __常量名__
●语法 define(常量名称,"值");
●不用"$"定义
●定义之后不能更改
●不可以传递,不可以通过$_POST $_GET $_COOKIE...传递安全性比较好
●一般用于配置站点的入口文件信息
◆作用域*
?是指在一个脚本中某个变量可以使用的或可见的范围。
PHP具有6项基本的作用域规则。
1.内置超全局变量可以在脚本的任何地方使用和可见。
2.常量,一旦被声明,将可以在全局可见;也就是说,它们可以在函数内外使用。
3.在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部。
4.函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致。
5.在函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数的多
次执行过程中保持该值。
6.在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在
了。
?$_GET和$_POST数组以及一些其他特殊变量都具有各自的作用域规则。这些被称作超级
全局变量,它们可以在任何地方使用和可见,包括内部和外部函数。
◆数据类型
(var_dump()可以显示数据类型)
?Integer(整数)————用来表示整数。
?Float(浮点)————用来表示所有实数。
?String(字符串)————用来表示字符串。
?Array(数组)————用来保存具有相同类型的多个数据项。
?Object(对象)————用来保存类的实例。
?Boolean(布尔值)————用来表示true或者false.
?Null(空)————没有被赋值、已经被重置或被赋值为特殊值NULL。
?Resource(资源)————特定的内置函数(例如数据库函数)。
?基本上不能直接操作一个resource变量,但是通常它们都将被函数返回,而且必须作
为参数传递给其它函数。
◆运算符
算术运算符
=指定+加号-减号*乘号/除号%余数++递增--递减
赋值运算符
= += -= *= /= .= %=
比较运算符
?返回值布尔类型(true/false)
<大于 >小于 >=大于等于 <=小于等于 ==等于 ===等于(值与数据类型必须一致) !=不等于(如果值相等,返回假)
注意:= 赋值 == 比较(判断)
逻辑运算符
与(and/&&) 前后条件都为true,结果为true。
或(or/||) 有一个为true,就为true。
非(!) 取反返回布尔值的相反值。
异或(xor)布尔值不同返回true,否则返回false。
其它符号
.字符串链接符号
,参数分隔符
//单行批注符号
/* */多行批注符号
" 及 '字符串分隔符
?检测数据类型
?返回布尔类型
●is_int() 检测是否是整形
●is_string() 检测是否是字符串
●is_array() 检测是否是数组
●is_null() 检测是否为空为空返回true
●empty() 检测是否为空
?流程控制语句
if else 条件判断语句
●if(判断体){执行体};
●if(判断体){
执行体1}else
{执行体2};
●if(判断体1)
{执行体1}else if(判断体2)
{执行体2}else if(判断体3)
{执行体3}else
{执行体4};
switch() 判断语句
?类似if else
switch(判断体){
case "值1":
echo "内容1";
break;
case "值2":
echo "内容2";
break;
default:
echo "内容3";
break;
}
for 循环
for(初始条件;循环条件;迭代表达式)
{
循环体;
}
while 循环
while(循环条件)
{
循环体;
迭代表达式;
}
do ...... while 循环
?无论是否满足条件都会输出一次然后在循环
do{
循环体;
迭代表达式;
}while(循环条件)
退出循环
1.break匙退出整个循环
2.continue匙退出当前循环,并返回到循环开始处
◆数组
?一个数组就是用来存储一系列变量值得命名区域,因此可以使用数组组织标量变量。
数组变量
$arr=array(name0 => value0 ,name1 => value1, name2 => value2,......);
下标/键名:name 键值:value
数组分类
●数值型数组:下标是数值
?如果不给下标,默认都是数值型数组
●关联型数组:下标是以字符串来代表,并且具有一定的意义
定义数组
●使用array()语句
$arr=array(name0 => value0 ,name1 => value1, name2 => value2,......);
echo$arr[name]
●以变量的形式来命名
●添删改查
$arr[0] = value0;
$arr[1] = value1;
输出数组
●echo
●print_r();专门用于打印数组,主要测试用的
●var_dump(); 元素个数,数据类型,数据字节数
?如果变量的值是字符串,此变量也可以当成数组
多维数组
?数组不一定就是一个关键字和值的简单列表——数组中的每个位置还可以保存另一个数组。使用这
种方法,可以创建一个二维数组。可以把二维数组当成一个矩阵,或是一个具有宽度和高度或行和列的网格。
●二维数组
$arr = array(0 =>array('name'=> '张飞0','age'=> '18'),
1=>array('name'=> '张飞1','age'=> '18'),
2=>array('name'=> '张飞2','age'=> '18')
);
遍历数组
●print_r()打印数组
●var_dump()显示数据类型
●foreach
foreach(array as $key => $value)
{
echo$key . '---' . $value;
}
●for
?只能遍历数值型数组
$arr = array('a','b','c','d','e');
for($n = 0;$n < count($arr);$n ++)
{
echo$n .'--- '.$arr[$n] .'
';
}
●while list each
while(list($key ,$value) = each(array))
{
echo$key .‘ --- ’. $value;
}
◆函数*
?函数是一个给出了调用接口的自包含模块,它可以执行一些任务并返回结果(可选)
分类
?PHP内置函数 phpinfo()
?自定义函数function (){ }
*
使用require()和include()函数
使用一条require()或include()语句,可以将一个文件载入到PHP脚本中。通常这个
文件可以包含任何希望在脚本中输入的内容,其中包括PHP语句、文本、HTML标记、
PHP函数或PHP类。
?require()和include()几乎是相同的。而这唯一的区别在于函数失败后,require()函
数将给出一个致命错误,include()函数只是给出一个警告。
自定义函数*
?函数不区分大小写,并且函数不能重名
●语法:
function函数名(参数1,参数2...)
{
函数体;
return 返回值; //返回一个结果,并且停止向下运行。
}
●调用
如果有返回值需要echo输出
如果无返回值可以直接调用
●参数
1.如果定义的时候有参数,调用时必须对该参数赋值。
2.如果定义的时候参数有默认值,调用时可以不给。
3.如果给默认值,该参数一般要排列在最后。
4.参数无限制。
●值传递(对参数赋值)
通常,函数获取参数的方式是值传递。当传递一个参数的时候,一个新的并且包含
该传入值的变量被创建。它是原变量的副本,可以以任意的方式修改它,但函数外
的原变量的值是不会改变的。
●引用传递(引用操作符:&)
在参数被传递给函数时,函数获得一个原来变量的引用,它不是获得变量本身的值,而是指向原来的值,任何对该引用的修改都会影响到原来的值。
●使用return关键字
关键字return将终止函数的执行[并返回一个值]。当一个函数的执行结束时,
要么是因为所有命令命令都执行完了,要么就是因为使用了关键字return。在
函数结束后,程序返回到调用函数的下一条语句。
●使用global关键字
global 定义全局变量——是外部变量的同名引用
$GLOBALS全局变量数组——是外部变量本身
变量的作用域*
1.在函数内部声明的变量作用域是从声明他们的那条语句开始到函数末尾。这叫做函
数作用域。这些变量称为局部变量。
2.在函数外部声明的变量作用域是从声明他们的那条语句开始到文件末尾,而不是函
数内部。这叫全局作用域。这些变量称为全局变量。
3.特殊的超级全局变量在函数内部和外部都是可见的。
4.使用require()和include()并不影响作用域。如果这两个语句用于函数内部,函数
作用域适用。如果它不在函数内部,全局作用域适用。
5.关键字“global”可以用来手动指定一个在函数中定义或使用的变量具有全局作用
域。
6.通过调用unset($variable_name)可以手动删除变量。如果变量被删除,它就不在
参数所指定的作用域中了。
超级全局变量(预定义数组)
?超级全局变量,可以在任何地方使用和可见,包括内部和外部函数。
完整列表如下:
?$GLOBALS,所有全局变量数组(就像global关键字,这将允许在一个函数内部访问
全局变量)。
?$_SERVER,服务器环境变量数组。
?$_GET,通过GET方法传递给脚本的变量数组。
?$_POST,通过POST方法传递给脚本的变量数组。
?$_COOKIE,cookie变量数组。
?$_FILES,与文件上传相关的变量数组。
?$_ENV,环境变量数组。
?$_SESSION,会话变量数组。
?$_REQUEST,(不建议使用)所有用户输入的变量数组,包括$_GET,$_POSE和
$_COOKIE所包含的输入内容(但是,不包括PHP4.3.0版本以后的$_FILES)。
●POST预定义数组
?获取表单提交的值
语法:$_POST['字段名称'];
●GET预定义数组
?用于连接传递参数
?与$_POST区别
1.get 会在地址栏显示出内容
2.get 传递有大小限制 100字符
●$_SESSION *会话变量数组
?用于存储用户的会话信息,变量保存的数据是单一用户的,多个用户之间无法共享数据,并且
可提供给程序中所有页面使用。
开启session
s ession_start();
对session存值
$_SESSION['名称']=值
关闭页面
unset / session_unset();销毁session
一定时间内无操作也会销毁session
?session的创建取决于用户的使用,销毁于用户退出,或该用户默认24分钟内未向
服务器提交任何请求。在php的配置文件中可以更改默认时间:
php.ini session.gc_maxlifetime = 1440
*
●COOKIES 缓存
?cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本
文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie,每个服务器最多在当前客户端放置20个cookie,每个客户端只能接受300个cookie文件,有一定得生存周期。
设置cookie
?设置cookie之前不能有任何形式的输出
setcookie ('cookie名称','对应的值','存在的时间')
获取cookie
$COOKIES['cookie名称'];
如何让cookie失效(把时间设置为负值)
setcookie('cookie名称','对应的值','过去式');
time(); 获取当前时间的Unix 时间戳。
* Unix 时间戳:自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日
00:00:00)到当前时间的秒数。
*
●$_FILES,与文件上传相关的变量数组
?$_FILES是PHP的一个预定义二维数组,可以获取用户上传文件的基本
$_FILES数组的内容格式:
$_FILES["表单字段名"]["属性"]
$_FILES["表单元素名"]["name"] 被上传文件的名称
$_FILES["表单元素名"]["type"] 被上传文件的类型
$_FILES["表单元素名"]["size"] 被上传文件的大小(字节为单位)
$_FILES["表单元素名"]["tmp_name"] 被上传文件所在服务器的临时文件名
$_FILES["表单元素名"]["error"] 由上传文件所导致的错误代码 注意:
如果表单需要上传文件,必须更改表单发送的数据类型,在form标记中加入
enctype="multipart/form-data"
需要使用到的其它函数
?move_uploaded_file(file ,newloc); //函数将上传的文件移动到新位置。
若成功,则返回true,否则返回false。file,规定要移动的文件;newloc,
规定文件的新位置。
?rename(oldname,newname,context) //函数重命名文件或目录。若成功,则该函数返回true。若失败,则返回false。oldname,规定要重命名的文件
或目录;newname,规定文件或目录的新名称;context,(可选)规定文件
句柄的环境。context是可修改流的行为的一套选项。
explode(separator ,string ,limit) //本函数返回由字符串组成的数组,其中的每个元素都是由separator作为边界点分割出来的子字符串。
separator,规定在哪里分割字符串;strin,要分割的字符串;limit,
(可选)规定所返回的数组元素的最大数目。
['error']和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)
A.值:0; 文件上传成功。
B.值:1; 超过了文件大小php.ini中即系统设定的大小。
C.值:2; 超过了文件大小MAX_FILE_SIZE 选项指定的值。
D.值:3; 文件只有部分被上传。
E.值:4; 没有文件被上传。
F.值:5; 上传文件大小为0。