除非注明,文章均为yishuihan(易水寒)原创,版权属于易水寒博客(http://www.yishuihan.net),转载请注明出处,谢谢。PHP重点基础知识整理
变量
-----------------------------------------------------------------------------
1,可以使用系统关键字作为变量名称。
2,变量名区分大小写(常量也区分大小写,其他不区分,例如内部函数等等)。
3,$a=1;$b=&$a;$b引用$a变量,改变$a或者改变$b的值,然后输出两个变量的值,结果相同。如果不加&,改变$a的值,$b的值还是1。
4,PHP变量类型有8种,可以使用var_dump()函数查看一个变量的类型。
5,在双引号中的字符串,可以直接解析变量,又可以直接使用转义字符。
6,在单引号中的字符串,不可以解析变量,也不可以使用转义字符(可以转义单引号本身,也可以转义字符“\”)。
7,单引号当中不能出现单引号,双引号当中不能出现双引号,开发当中最好使用单引号。
8,$int=thisboy;$str="www$intorg";echo $str;如果想正确输出变量的值,可以用{}给变量括起来。
9,大量输入字符串的时候可以使用定界符号声明字符串,
例如:
$int=10;
$str=<<<hello
ajaadfadf'afaa'a{$int}dfadf"af"adfadf''adf\radsfasdf'adsf'
hello;
echo $str;
hello是自定义的一个字符串,他后面不能有任何字符,空格也不可以,必须换行,结束的时候也要以这个字符串结束,但结束前也不能有任何字符。
10,$a=null;isset($a);变量是不存在的。用empty($a);变量是空的。
-----------------------------------------------------------------------------
数据类型与常量
-----------------------------------------------------------------------------
1,数据类型转换分为二种,一种是强制转换:(1),setType(变量,类型);。(2),$str="100.34abc";$a= (int)$str;也可以使用转换函数$变量=intval(变量或值);这两种都不会改变原变量的类型。另一种是自动转换:最长见方式,变量会根据运 行环境自动转换。
2,判断变量的数据类型可以使用变量类型测试函数,如:is_int(),is_float(),is_null()等等。
3,常量使用define()定义,定义后,不能改变常量的值,也不能使用unset()取消,也不能使用其他函数取消。在做项目中,一些值我们只用而不需要动态改变,需要定义成常量。
4,常量必须在声明的时候就给值。
-----------------------------------------------------------------------------
循环语句
-----------------------------------------------------------------------------break;     退出循环。
continue;  退出本次循环,后续循环继续进行。
exit;      退出程序。
return;   函数执行返回值。
-----------------------------------------------------------------------------
函数声明使用
-----------------------------------------------------------------------------
1,PHP的变量分不出声明还是使用,在PHP中使用全局变量,要通过global关键字将这个全局变量包括到函数中才能使用到,在global声明之后才是使用全局的变量。
2,参数就是局部变量,这个局部变量可以在调用时去赋值。
3,静态变量只能声明在函数中(类中),不能在全局声明。使用static在变量前。
4,一个静态变量可以在同一个函数在多次调用中共用。
静态变量在静态代码段中保存;
一个函数多次调用之间共用,但只在第一次调用函数时声明到内存,以后再调用,就不再声明,而是直接使用。
5,变量函数,如果一个变量后面有括号$var="hello";var();就将寻找与变量值同名的函数hello();
6,系统函数类型:
(1),常规函数 bool copy(string source,string dest);
(2),带有mixed,mixed表示可以传任何类型的数据。
(3),带有&参数的函数,表示引用赋值,这个参数不能传值,只能传一个变量,然后函数将变量的值改变,我们在使用这个变量时,值也是变化的。
例如:  bool arsort(array &array[, int sort_flags ]);
(4),带有[]的函数,表示这个参数是可选的,如果你传值了就使用你传的值,如果没有传值,就使用默认值。
例如:  bool arsort(array &array[, int sort_flags ]);
(5),带有...的参数函数,...表示可以传任意多个参数。
int array_unshift(array &array,mixed var [,mixed ...]);
(6),回调函数,带有callback,就是调用这个函数时需要我们传一个参数进来(函数名,函数名字串)。
例如:function demo($a,$b){
return $a+$b;
}
function test($x,$y,$fun){
return $x+$y+$fun($x,$y);
}
echo test(5,6,demo);或者echo test(5,6,“demo“);
7,function test(){
$arr=func_get_args();  //这个函数能取到函数传进来的所有参数,并生成数组,然后通过下标取值。
}
test(a,b,c,d,e,f,g,h);
8,内部函数:PHP可以在函数内部再声明函数,目的就是在函数的内部调用,用来帮助外部函数完成一些子功能。
9,递归函数:自己在内部调用自己的函数名。
-----------------------------------------------------------------------------
PHP面向对象
-----------------------------------------------------------------------------
一、抽象类和抽象方法
1,抽象类是一种特殊的类,接口是一种特殊的抽象类,而多态就要使用到抽象类或是接口。
2,抽象方法就一个类中的方法,没有方法体的方法。例如:function test();
3,如果一个方法是抽象方法,就必须使用abstract修饰。例如:abstract function test();
4,抽象类就是一个类中有一个方法是抽象的,那这个类就是抽象类。
5,如果一个类是抽象类,则这个类必须要使用abstract修饰。
6,在抽象类中可以声明成员属性,常量,非抽象方法。
7,抽象类中不能实例化对象(不能通过抽象类去创建一个抽象类的对象)。
8,要想使用抽象类,就必须使用一个类去继承抽象类,而且要想使用这个子类,也就是让子类可以创建对象,子类就必须不能再是抽象类。子类可以重写父类的方法(给父类方法加上方法体)。
9,抽象类和接口一样,就是定义一些规范,让子类按这些规范去实现自己的功能。
10,抽象类目的就是将你自己写的程序模块,加入到原来写好的程序中。二接口与面向对象中多态的应用
1,接口和抽象类作用相同。
2,接口的声明和抽象类不一样。
3,接口被实现方式不一样。
4,接口中的所有方法必须是抽象方法,只能声明抽象方法(不需要使用abstract修饰)。
5,接口中的成员属性,只能声明常量,不能声明变量。
6,接口中的成员访问权限,都必须是public,抽象类中最低的权限是protected。
7,接口声明方式:
interface Demo{
const USER="admin";  -->声明一个常量。
function fun1();
}
8,使用一个类去实现接口,不是使用extends关键字,而使用implements关键字,例如:
9,可以使用抽象类去实现接口中的部分方法,如果想让子类可以创建对象,则必须实现接口中的全部抽象方法。
10,普通类(class)---接口,抽象类(abstract)---接口,则使用implements关键字,接口---接口,使用extends关键字。
接口:
interface Demo{
const USER="admin";  -->声明一个常量。
function fun1();
}
①普通类(class)---接口
class Index implements Demo{
function fun1(){
}
}
②抽象类(abstract)---接口
abstract Class index2 implements Demo{
}                                         -->我们可以在添加一些抽象方法,然后在声明个类继承这个抽象类,来实现接口和抽象类。
②接口---接口
interface Index3 extends Demo{
function fun2();
function fun3();
}
11,一个类可以去实现多个接口(按多个规范去开发子类),例如:
interface Demo{
const USER="admin";  -->声明一个常量。
function fun1();
}
interface Demo2 extends Demo{
function fun2();
}
interface Demo3{
function fun3();
}
class Index implements Demo2,Demo3{
function fun1(){
}
function fun2(){
}
function fun3(){
}
}
12,一个类可以在继承一个类的同时,再实现一个或者多个接口(先继承类再实现接口),例如:
class Index{
function fun1(){
}
}
interface Demo{
funtion fun2();
}
class Index2 extends Index implements Demo{
function fun1(){
}
function fun2(){
}
}
13,多态最直接的定义就是让具有继承关系的不同类对象,可以对相同名称的成员函数调用,产生不同的反映效果,例如:
interface Test{
function a();
function b();
}
class One implements Test{
function a(){
echo "aaaaaaaaaaaaaaa";
}
funtion b(){
echo "bbbbbbbbbbbbbbb";
}
}
class Two implements Test{
function a(){
echo "111111111111111";
}
funtion b(){
echo "222222222222222";
}
}
$str=new One;或者$str=new Two;
$str->a();
$str->b();
---------------------------------------------------------------------------------------------------------------
除非注明,文章均为yishuihan(易水寒)原创,版权属于易水寒博客(http://www.yishuihan.net),转载请注明出处,谢谢。