php从入门到精通免费.docx
《php从入门到精通免费.docx》由会员分享,可在线阅读,更多相关《php从入门到精通免费.docx(104页珍藏版)》请在冰豆网上搜索。
php从入门到精通免费
1.分界标示符
PHP分界标示符确定PHP脚本的开始和结束位置,在PHP语言中有四种不同风格的分界标示符可以让PHP代码嵌入到HTML代码中,分别如下:
a.PHP标准分界符:
php和?
>
b.PHP简写分界符:
和?
>
c.JavaScripte和VBScript风格分界符:
和
d.ASP风格分界符:
<%和%>
2.标示符:
由字符,数字,下划线组成,首字母必须是字符或下划线
变量以$开头。
3.PHP是区分大小写的。
4.语句以分号结束
5.注释:
/**/
//
#
共上面三种
6.数据类型:
integer,double,string,array,object(对象类型),Boolean,resource(资源),NULL
7.字符串的定义:
用双引号或者单引号,但有区别
双引号里面的变量和转义字符都会被解析,而单引号里面的就都当做是字符串来处理。
如果在双引号中要想不解析变量,就可以用’\’加在前面。
php
$str="hello";
print"nihao,areyou\$str=$str";
print"
";
print'nihao,areyou$str=$str';
?
>
8.数组初始化:
数组定义:
$arr=array();
$arr[0]='nihoa';
$arr[1]=1;
正常数组初始化:
方式一:
$arr_family=array('LinNa','Jhon','Peter');
方式二:
$arr_family[]='LinNa';
$arr_family[]='Jhon';
$arr_family[]='Peter';
哈希表形式数组初始化:
方式一:
$arr_family['mother']='LinNa';
$arr_family['father']='Jhon';
$arr_family['mother']='Peter';
方式二:
$arr_family=array('mother'=>'LinNa','father'=>'Jhon','son'=>'Peter');
9.对象:
类:
Class类名
{
Public$属性名;
Publicfunction函数名()
{
$变量名;
}
}
php
classfoo{
public$C_foo='Thisisaclass';
publicfunctiondo_foo()
{
echo'Doingfoo';
}
}
$newfoo=newfoo();
print$newfoo->C_foo;
print"
";
$newfoo->do_foo();
?
>
效果如下:
10.NULL
空,可以使null,也可以使NULL,不区分大小写
NULL表示没有值的变量。
11.数据类型转换
一般情况下,数据类型会自动转换,同时我们也可以进行强制类型转换,强制类型转换的方法是把数据类型用括号括起来放在要转换的数据类型前面即可。
(int)/(integer)转换为整形值
(real),(double),(float)转换为双精度
(string)转换为字符串
(array)转换为数组
(object)转换为对象。
12.变量不需要定义就可以使用。
在函数外部定义的变量时全局变量,在函数内部定义或使用的变量是局部变量。
在函数内部不能访问函数外部的变量
要想访问,就必须在函数内部,复制一个全局变量,global全局变量名,这样用的变量才是全局变量。
php
$a=1;
$b=2;
functionSum()
{
$b=$a+$b;
print"Internal\$bis$b";
}
Sum();
print"
";
print"Out\$bis$b";
?
>
效果如下:
从上面可以看到,函数里面是没法调用全局变量的,要想调用,需要申明。
php
$a=1;
$b=2;
functionSum()
{
global$a;
global$b;
$b=$a+$b;
print"Internal\$bis$b";
}
Sum();
print"
";
print"Out\$bis$b";
?
>
效果如下:
我们看见,要想在函数里面调用全局变量,必须先用global来复制一遍这个变量,才能使用。
13.静态变量:
用static修饰的变量
1.对于全局变量,只要定义了,就会以键值的形式存到$GLOBAL这个数组中,所以,如果我们想在函数中使用全局变量,也可以$GLOBAL[$全局变量名]的形式来引用。
$GLOBALS:
包含指向当前程序中全局范围内有效的变量,它是一个数组,该数组的索引(或键名)就是全局变量的名称。
2.PHP还可以获得外部来的变量,外部来的有四种类型:
$_GET:
通过HTTP的GET方法提交至脚本的表单变量。
$_POST:
通过HTTP的POST方法提交至脚本的表单变量。
$_FILE:
通过HTTP的POST文件上传提交至脚本的变量。
$_COOKIE:
通过HTTP的Cookies方法提交至脚本的变量。
NewHtml.php程序如下:
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Frameset//EN">
InserttitlehereThispageusesframes.Thecurrentbrowseryouareusingdoesnotsupportframes.
User:
Password:
Sex:
female
male
index.php程序如下:
php
$name=$_POST['name'];
$password=$_POST['password'];
$sex=$_POST['sex'];
echo"nameis$name";
echo"
";
echo"passowrdis$password";
echo"
";
echo"sexis$sex";
?
>
效果如下:
其他方式也是一样的。
3.检测是否为那个数据类型:
在PHP中,可以通过以下函数对变量的类型做判断。
函数is_integer判断变量是否为整数。
函数is_string判断变量是否为字符串。
函数is_double判断变量是否为浮点数。
函数is_array判断一个变量是否为数组。
我们会发现有很多很多的检测,用到可以直接拿来用。
4.获得数据类型:
在PHP中,可以使用预定义函数gettype取得一个变量的类型,它接受一个变量作为参数,返回这个变量的类型。
php
$a=1;
$b='nihao';
$c=array();
echo"\$ais".gettype($a);
echo"
";
echo"\$bis".gettype($b);
echo"
";
echo"\$cis".gettype($c);
?
>
效果如下:
使用预定义函数settype设置一个变量的类型,该函数接受两个参数,第一个参数是变量名,第二个参数是要设置的变量的数据类型。
使用预定义函数isset判断一个变量是否已经定义,它接受一个变量作为参数值,返回值如果为TRUE,说明该变量定义过,否则,说明该变量没有被定义。
使用unset语句删除一个变量。
从PHP4开始unset不再有返回值,因此,严格意义上讲,它并不是一个函数,而是一个PHP的语言结构。
可以用unset一次删除多个PHP变量。
unset($a);
在PHP中通过define()函数定义一个常量。
合法的常量名只能以字母和下划线开始,后面可以跟着任意字母、数字或下划线。
常量一旦定义就不能再修改或者取消定义。
5.如果是多选框,虽然名字相同,但可能选择好多个,怎么处理呢?
可以再命名名字的时候,加[].
但是单选框不一样,因为单选框只有一个值,可以不需要加[]
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Frameset//EN">
InserttitlehereThispageusesframes.Thecurrentbrowseryouareusingdoesnotsupportframes.
User:
Password:
Sex:
female
male
Gender:
male
female
Hobby:
read
basketball
travel
sing
index.php:
php
$name=$_POST['name'];
$password=$_POST['password'];
$gender=$_POST['gender'];
$hobby=$_POST['hobby'];
$like="";
foreach($hobbyas$one)
{
$like.="、".$one;
}
echo"genderis$gender";
echo"
";
echo"like:
is$like";
?
>
效果如下:
6.使用print_r函数显示数组元素
有时,为了在程序中查看一个数组的结构(即索引和值的对应关系),需要将数组结构显示到页面上。
这可以通过PHP的print_r函数实现。
php
$ms_office=array(
0=>'word',
3=>'excel',
'outlook',
'access');
print_r($ms_office);
?
>
效果如下:
php
$ms_office=array(
'word',
'excel',
'outlook',
'access'
);
print_r($ms_office);
?
>
效果如下:
7.实现数组分割
使用函数array_chunk可以对一个数组进行分割,该函数语法如下所示。
arrayarray_chunk(array$input_array,int$size,bool$preserve_key);
该函数接受3个参数,$input_array是将要分割的数组(即原数组),$size表示原数组被分割后,每个数组中元素的个数,$preverse_key是可选参数,它为TRUE时,分割后的每个数组的索引使用原数组的索引名;它为FALSE时,分割后的每个数组的索引都将使用从0开始的整数索引。
该函数的返回值是一个数组,这个数组的索引从0开始,该数组的每个元素仍然是一个数组,即原数组被分割后的一个数组。
php
$ms_office=array(
'wd'=>'word',
'ec'=>'excel',
'ol'=>'outlook',
'ac'=>'access',
'vs'=>'visio'
);
echo'
';//作用就是让输出按格式来,不是直接乱七八糟输出print_r(array_chunk($ms_office,2));
print_r(array_chunk($ms_office,2,TRUE));
?
>
效果如下:
8.实现数组合并
使用函数array_merge可以合并一个或多个数组,该函数的语法如下所示。
arrayarray_merge($array…);
该函数接受一个或多个数组作为参数,PHP5中,它只接受array类型的参数。
该函数返回一个合并后的数组。
php
$arr1=array('Earth','Venus');
$arr2=array(4=>'Mars',5=>'Jupiter',6=>'Saturn');
$planet=array_merge($arr1,$arr2);
echo'
';print_r($planet);
?
>
效果如下:
9.处理数组元素和键值位置
PHP的每个数组内部均会有一个指针,指向当前元素。
这里所谓的指针,可以把它理解成程序即将要处理的元素所在的位置。
处理数组元素和键值(索引)的位置,就是获取数组某个位置上的元素,或获取该元素后,将该指针移动到其他位置。
PHP中,处理数组元素和键值位置的函数主要有以下几个。
current:
该函数返回数组的当前元素,不移动当前指针位置。
next:
该函数返回当前元素的下一个元素的值,并将指针向后移动一位,下一个元素不存在时,返回FALSE。
prev:
该函数返回当前元素的上一个元素的值,并将指针向前移动一位,上一个元素不存在时,返回FALSE。
end:
该函数返回数组的最后一个元素的值。
php
$planet=array(
'Earth',
'Venus',
'Mars',
'Jupiter',
'Saturn'
);
$pos=current($planet);//此时$pos=Earth
echo'pos1='.$pos;
echo'
';
echo'
';
$pos=next($planet);//此时$pos=Venus
echo'pos2='.$pos;
echo'
';
echo'
';
$pos=current($planet);//此时$pos=Venus
echo'pos3='.$pos;
echo'
';
echo'
';
$pos=prev($planet);//此时$pos=Earth
echo'pos4='.$pos;
echo'
';
echo'
';
$pos=end($planet);//此时$pos=Saturn
echo'pos5='.$pos;
echo'
';
echo'
';
$pos=current($planet);//此时$pos=Saturn
echo'pos6='.$pos;
?
>
效果如下:
10.数组建新索引排序:
10.1使用函数sort对数组元素按顺向排序,即按字母由前向后或按数字由小到大排序。
该函数的语法如下所示。
boolsort(array&$arr[,int$sort_flag]);
该函数接受一个数组作为输入参数,如果处理成功,该函数返回TRUE,否则,该函数返回FALSE。
该函数将会删除所要排序的数组原有的索引值,从而为该数组使用新的索引值。
10.2使用函数rsort对数组元素做逆向排序,即按字母从后到前或按数字由大到小排序。
该函数的语法如下所示。
boolrsort(array&$arr[,int$sort_flag]);
该函数接受一个数组作为输入参数,如果处理成功,函数返回TRUE,否则返回FALSE。
该函数将会删除所要排序的数组原有的索引值,从而为该数组使用新的索引值。
11.数组保持原索引的排序:
asort:
该函数对数组元素进行排序,并且保持数组的原索引关系不变。
该函数仍然对数组元素按顺向排序。
如果处理成功,该函数返回TRUE,否则返回FALSE。
ksort:
该函数对数组元素按索引名顺序排序,并且保持数组的原索引关系不变,如果处理成功该函数返回TRUE,否则返回FALSE。
该函数主要用于关联数组。
php
$planet1=array(
'Earth',
'Venus',
'Mars',
'Jupiter',
'Saturn'
);
$planet2=array(
'X'=>'Earth',
'Y'=>'Venus',
'Z'=>'Mars',
'A'=>'Jupiter',
'B'=>'Saturn'
);
asort($planet1);
ksort($planet2);
echo'使用函数asort对数组元素排序:
';
echo'
';
foreach($planet1as$key=>$value)
{
echo'planet1['.$key.']='.$value;
echo'
';
echo'
';
}
echo'
';
echo'使用函数ksort对数组元素排序:
';
echo'
';
foreach($planet2as$key=>$value)
{
echo'planet2['.$key.']='.$value;
echo'
';
echo'
';
}
?
>
效果如下:
12.数组的随机排序
PHP提供一个随机排序数组元素的函数shuffle(),该函数的语法如下所示。
boolshuffle(array$array)
该函数为参数数组$array中的元素赋予新的键名,这将删除原有的键名而不仅仅是重新排序。
如果执行成功该函数返回TRUE。
13.数组的反向排序
本节最后,介绍一个可以将数组元素按原顺序反向排序的函数,该函数是array_reverse()。
其语法如下所示。
arrayarray_reverse(array$array[,bool$preserve_keys])
该函数返回一个与原数组单元顺序相反的数组,原数组以参数$array传入该函数,该函数的第2个参数是可选的,如果第2个参数$preserve_keys设置为TRUE,则原数组的键名将会被保留。
14.重置一个数组
PHP中,重置一个数组指的是,将数组中的内部指针移动到该数组的第一个元素所在的单元。
使用函数reset可以完成对数组的重置。
该函数的语法如下所示。
mixedreset(array&$arr);
该函数接受一个数组类型的变量,将函数内部指针指向数组第一个单元,并将第一个单元的元素返回。
如果数组为空,该函数返回FALSE。
php
$planet=array(
'Earth',
'Venus',
'Mars',
'Jupiter',
'Saturn'
);
echo'当前元素是:
'.current($planet);
echo'
';
next($planet);
next($planet);
echo'
';
echo'调用两次next函数之后,当前元素是:
'.current($planet);
echo'
';
reset($planet);
echo'
';
echo'reset数组$planet后,当前元素是:
'.current($planet);
echo'
';
?
>
效果如下:
15.用数组对变量赋值
PHP中,可以将数组的元素作为值赋给变量,使用语言结构list()可以完成这个功能。
严格意义上讲,list()和array()一样,不是函数。
在下述程序中,通过list,将数组$planet的第一个元素’Earth’赋给了变量$no1,将第二个元素赋给了变量$no2,将第3个元素赋给了变量$no3。
php
$planet=array(
'Earth',
'Venus',
'Mars',
'Jupiter',
'Saturn'
);
list($no1,$no2,$no3)=$planet;//将数组中的前3个元素分别赋给list结构中对应的3个变量
echo'no1='.$no1;
echo'
';
echo'
';
echo'no2='.$no2;
echo'
';
echo'
';
echo'no3='.$no3;
echo'
';
echo'
';
?
>
效果如下:
16.快速创建数组
函数range()可以快速创建制定元素范围的数组。
其语法如下所示。
arrayrange(mixed$low,mixed$high[,number$step])
函数range()返回一个数组,其中元素为参数从$l