PHP学习笔记.docx
- 文档编号:10824277
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:81
- 大小:56.14KB
PHP学习笔记.docx
《PHP学习笔记.docx》由会员分享,可在线阅读,更多相关《PHP学习笔记.docx(81页珍藏版)》请在冰豆网上搜索。
PHP学习笔记
查找wampServer的常用配置:
Cmd下查看端口占用情况:
netstat–aon(注意有个空格)
PHP开始标记和结束标记:
php……….?
>
注释:
PHP支持三种注释:
1)/*多行注释*/
2)//单行注释
3)#单行注释
变量:
PHP变量名之前必须要加美元符号$标识。
如:
$userName
注意:
PHP是一种弱类型的语言,声明变量或者常量时,不需要事先声明变量或者常量的数据类型,PHP会自动由PHP预处理器的值将变量转换成适当的数据类型。
如:
php
$a=0;
$a=0.00;
?
>
PHP数据类型:
PHP数据类型有四种:
标量数据类型,复合数据类型,特殊数据类型,伪数据类型。
其中标量数据类型有四种:
布尔型,整型,浮点型和字符串型。
复合数据类型有两种:
数组和对象。
特殊数据类型有:
资源数据类型和空数据类型。
伪数据类型通常在函数定义中使用。
布尔值:
FALSE,TRUE。
不区分大小写。
php
/*
createbyzhangontime2013-7-1上午11:
35:
37
*/
$a=TRUE;
$b=FALSE;
echo$a;
echo"
";
echo$b;
?
>
注意:
使用echo输出True时,True会被自动转换为整数1,False会被自动转换为空字符串。
字符串:
在PHP中对字符串的长度没有限制,字符串可以使用’’括起来,也可以使用””括起来。
$string1='nihaoma';
$string2="yishaoku";
$string3='string3$string1';
$string4="string4$string1";
echo$string3;
echo"
";
echo$string4;
使用单引号和双引号的区别:
使用双引号的字符串中若出现变量名(以$开头),变量名会被替换成对应的变量值,使用单引号指定的字符串则不会。
数组:
PHP中每个数组由键和值构成,键既可以是数字也可以是字符串。
各元素的值既可以是标量数据类型也可以是复合数据类型。
在PHP中数组是动态的,在定义数组时不必指定数组的长度。
php
/*
createbyzhangontime2013-7-1下午01:
45:
09
*/
$num=array(1,2,3,4,5);
$words=array("yishaoku","zhangfeng","database"=>"MySql");
echo$num[2];
echo"
";
echo$words["database"];
?
>
对象:
php
/*
createbyzhangontime2013-7-1下午01:
49:
43
*/
classStudent{
public$name;
public$Sex;
functiongetName(){
return$this->name;
}
functionsetName($name){
$this->name=$name;
}
functiongetSex(){
return$this->Sex;
}
functionsetSex($Sex){
$this->Sex=$Sex;
}
}
$student=newStudent();
$student->setName("张三");
echo$student->getName();
?
>
实例化一个对象使用关键字new
访问对象中成员变量的方法:
对象->成员变量
访问对象中成员方法的方法:
对象->成员方法
资源数据类型:
资源是PHP提供的一种特殊的数据类型,这种数据类型表示一个PHP的外部资源,如一个数据库的连接或者一个文件流等。
PHP提供的mysql_connect()函数用于建立一个与MySql服务器的连接,fopen()函数用于打开一个文件、这些函数的返回值都是资源数据类型。
var_dump()函数用于输出函数参数的数据类型。
空:
NULL
用来标识一个不确定或者不存在的数据。
NULL不区分大小写。
伪类型:
1)mixed:
说明函数可以接受(或者返回)不同类型的数据(但不是所有类型的数据)
2)number:
:
说明函数可以接受(或者返回)整型或者浮点型的数据
3)void说明函数没有参数或者返回值。
4)callback:
说明函数可以接受用户自定义的函数作为一个参数。
注意:
伪类型不能作为变量的数据类型。
PHP获取客户端数据例子:
DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:
//www.w3.org/TR/html4/loose.dtd">
用户名:
密 码:
确认密码:
Php:
php
/*
createbyzhangontime2013-7-3上午07:
50:
27
*/
$userName=$_POST["userName"];//$_POST通过这个方法获得使用post方式传递的数据
$password=$_POST["password"];
$repassword=$_POST["repassword"];
if($password==$repassword){
echo"您可以注册了!
您加密后的密码为:
";
echomd5($password);
}else{
echo"您输入的两次密码不一致!
";
}
?
>
PHP数据的输出:
print和echo:
两者功能几乎完全一样,都用于向页面输出字符串。
区别:
使用echo可以输出多个字符串(字符串之间用逗号分隔),而print一次只能输出一个字符窜。
在echo前不能使用错误抑制运算符”@”。
Print也可以看做一个有返回值的函数,此时print作为表达式的一部分,而echo不能。
输出运算符:
=?
>
注意:
在使用这种方式时,只有将php.ini文件中的short_open_tag选项设置为On,他才会有效。
Print_r函数:
对于复合数据类型的输出,经常使用print_r函数。
使用print_r函数输出数组中的元素或对象的成员变量时,将按照“键“=>值的形式输出。
php
/*
createbyzhangontime2013-7-3上午08:
54:
30
*/
classPerson{
public$name="张三";
public$sex="男";
}
$person=newPerson();
print_r($person);
echo"
";
$words=array("browser","application");
print_r($words);
?
>
PersonObject([name]=>张三[sex]=>男)
Array([0]=>browser[1]=>application)
常量:
常量一旦定义,常量的值和数据类型将不再改变。
PHP中常量分为自定义常量和预定义常量。
自定义常量使用函数define()定义。
define(name,value,[booleancase_insensitive])
case_insensitive默认为FALSE表示常量名name大小写敏感,case_insensitive为TRUE表示name大小写不敏感。
注意:
1)常量使用define()函数定义,常量名前不加“$”符号
2)常量名首字母必须是字母或者下划线
3)常量一经定义,值不能在程序执行过程中修改。
预定义常量:
1)_FILE_当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require)那么它的值就是被引用的文件,而不是引用它的那个文件。
2)_LINE_正在处理的脚本文件的行号
3)PHP_VERSION当前PHP预处理器的版本
4)PHP_OSPHP所处的操作系统的类型。
5)TRUE
6)FALSE
7)NULL
8)DIRECTORY_SEPARATOR:
表示目录分隔符。
UNIX或者Linux是”/”,win是”\”.
php
/*
createbyzhangontime2013-7-3上午10:
41:
16
*/
echo__FILE__;
echo"
";
echo__LINE__;
echo"
";
echoPHP_VERSION;
echo"
";
echoPHP_OS;
echo"
";
echoDIRECTORY_SEPARATOR;
?
>
变量:
变量名是大小写敏感的。
变量的赋值方式:
1)传值赋值方式
php
/*
createbyzhangontime2013-7-3下午02:
59:
16
*/
$age1=18;
$age2=$age1;
$age2=20;
echo$age1;//18
echo"
";
echo$age2;//20
?
>
注意:
当执行$age2=$arg1语句时,内存中并没有新增变量$age2的变量值18,这是PHP为了提高内存的使用效率,采用了“写时拷贝”的原理对对象进行赋值。
简言之,除非发生写(或修改)操作,否则指向同一个地址的变量值或者对象不会被拷贝。
2)传地址赋值方式
php
/*
createbyzhangontime2013-7-3下午03:
05:
05
*/
$age1=18;
$age2=&$age1;
$age2=20;
echo$age1;
echo"
";
echo$age2;
?
>
PHP通过在变量前添加”&”符号实现传地址赋值。
可变变量:
可变变量允许程序动态的改变一个变量的变量名,可变变量用一个变量的“值”作为另一个变量的“名”。
php
$name="age";
$$name=20;//用$$name取代$age。
代码等价于:
$age=20
echo$age;
?
>
有关变量或者常量状态的函数:
1)gettype()
该函数需要变量名(带$符号)或者常量名作为参数,返回变量或者常量的数据类型。
2)var_dump()
该函数需要变量名(带$符号)或者常量名作为参数,可以得到变量或者常量的数据类型以及对应的值。
注意:
在调用函数时函数名大小写不敏感.
3)defined()
检查常量是否经过定义。
参数为常量名(常量名必须带双引号或者单引号)。
如果定义了,返回TRUE,否则返回FALSE。
4)isset()函数
检查变量是否定义。
注意:
isset()只能用于判断变量是否定义,传递其他参数都将造成程序解析错误。
defined()只能用于判断常量是否定义,传递其他参数返回结果永远为FALSE。
5)取消变量定义unset()函数
使用unset()函数只是断开了变量名和变量值之间的关系,没有立即销毁变量,变量由PHP的垃圾回收机制在适当的时候进行回收。
不能使用unset()函数取消常量的定义,否则造成程序解析错误。
6)检查变量是否为空
boolempty(mixedvar)
使用empty()函数时,变量为空的意义为:
变量的值为””,0,”0”,0.0,NULL,FALSE,或array()。
都视为空。
Empty只能用于检测变量是否为空,传递其他参数都将造成程序解析错误。
is_null()
检查变量是否为null
下面的情况认为是null:
变量未经定义.
变量的值赋值为NULL
变量经unset()函数处理后。
7)数据类型检查函数
is_boll
检测变量或者常量是否为布尔型
is_string
检测变量或者常量是否为字符串
is_int,is_integer,is_long
检测变量或者常量是否是整数
is_double,is_float,is_real
检测变量或者常量是否为浮点型
is_numeric
检测变量或者常量是否为数字或数字字符串
is_scalar
检测变量或者常量是否为标量数据类型
is_array
检测变量或者常量是否为数组
is_object
检测变量或者常量是否为对象
is_resource
检测变量或者常量是否为资源类型
PHP中特殊的比较运算符:
等于
$a==$b
如果$a和$b值相等,结果为TRUE
全等
$a===$b
如果$a和$b值相等,类型也相等,返回TRUE
不等
$a!
=$b
如果$a和$b值不相等结果为TRUE
$a<>$b
非全等
$a!
==$b
如果$a和$b值不相等,或者他们的数据类型不同结果为TRUE
注意:
PHP中比较运算符会将类型不同的两个数据自动转换为相同类型的数据后再进行比较。
如下例子中的5和”5.0”
php
/*
createbyzhangontime2013-7-3下午03:
48:
55
*/
$a=5;
$b="5.0";
$c=3;
var_dump($a==$b);//true
var_dump($a===$b);//false
var_dump($a!
=$b);//false
var_dump($a!
==$b);//true
?
>
逻辑运算符:
与
$a&&$b
$aand$b
或
$a||$b
$aor$b
非
!
$a
异或
$axor$b
字符串连接运算符:
”.”点号
错误抑制运算符:
当PHP表达式产生错误而又不想将错误显示在页面上时,可以使用错误抑制运算符“@”.将@放在表达式之前。
该表达式的错误信息就不会输出。
php
print$age;
echo"
";
@print$age;
?
>
注意:
不能将print替换成echo.
类型运算符:
用于判断一个对象是否是某一个类的对象
php
classA{
}
classB{
}
$a=newA();
var_dump($ainstanceofA);
echo"
";
var_dump($ainstanceofB);
?
>
执行运算符:
使用反引号`(ESC下面的那个)。
执行运算符尝试将反引号中的字符串内容作为操作系统命令来执行。
(Linux的shell命令。
或windows的Dos命令)。
位运算符:
与
&
或
|
异或
^
非
~
左移
<<
右移
>>
运算符的优先级(高低):
()
!
~,++,--
*,/,%
+,-,.
<<,>>
<,<=,>,>=
==,!
=,===,!
==
&
^,!
&&,||
?
:
=,+=,-=,*=,/=,%=,.=
and,xor,or
数据类型的转换:
自动类型转换:
1)布尔型数据参与算术运算时,TRUE转换为整数1,FALSE转换为整数0、NULL参与算术运算时被转换为整数0.
2)参与算术运算的字符串,只有以数字开头的字符串才会被认作数字。
如:
“3.5”,”4.01”,”4.2e6”.””4.1degree被转换成3.5,4.01,4200000,4.1。
如果字符串不是以数字开头,将被转换为整数0.
3)在进行字符串连接运算时,整数,浮点数,将被转换为字符串类型数据。
布尔型TRUE转换成字符串1,FALSE和NULL转换成空字符串。
4)在进行逻辑运算时,空字符串””,字符串”0”,整数0,浮点数0.0,NULL,以及空数组将被转换成布尔型FALSE,其他数据被转换成TRUE.(注意字符串“0.0”将被转换为TRUE)
强制数据类型转换:
方法:
1)在变量或常量前使用()小括号
2)使用类型转换函数intval(),返回变量或者常量的整数值floatval(),返回变量或者常量的浮点数值,strval(),返回变量或者常量的字符串值
3)使用通用类型转换函数settype()
Boolsettype(mixedvar,stringtype)
设置变量var的数据类型为type数据类型
注意:
使用settype()函数设置变量数据类型时,变量本身的数据类型将发生变化。
php
/*
createbyzhangontime2013-7-3下午04:
40:
01
*/
$a="123.9abc";
$b=intval($a);
$c=floatval($a);
$d=strval($a);
var_dump($b);
echo"
";
var_dump($c);
echo"
";
var_dump($d);
echo"
";
?
>
php
$a="123.9abc";
settype($a,"bool");
var_dump($a);
echo"
";
$b="123.9abc";
settype($b,"int");
var_dump($b);
echo"
";
$c="123.9abc";
settype($c,"float");
var_dump($c);
echo"
";
$d="123.9abc";
settype($d,"string");
var_dump($d);
echo"
";
$e="123.9abc";
settype($e,"array");
var_dump($e);
echo"
";
$f="123.9abc";
settype($f,"object");
var_dump($f);
echo"
";
$g="123.9abc";
settype($g,"NULL");
var_dump($g);
echo"
";
?
>
终止PHP程序的运行:
当程序中出现错误时,应该控制程序立即终止执行剩余的PHP代码,PHP提供的exit语言结构(或die语言结构)可以实现这个功能。
exit语言结构语法格式:
voidexit([stringmessage])
php
/*
createbyzhangontime2013-7-4上午08:
19:
05
*/
@($a=2/0)orexit;
echo"exit后的语句不执行";
?
>
php
/*
createbyzhangontime2013-7-4上午08:
19:
05
*/
@($a=2/0)ordie;
echo"exit后的语句不执行";
?
>
数组
一维数组:
声明方法:
1)不指定数组元素的键
如:
$chars[]=”humour”;
当数组新元素的键没有指定时新元素的键在已有元素最大整数键的基础上递增(数组没有整数键时,则从0开始递增)。
$chars[]="humour";
$chars[]="options";
print_r($chars);//Array([0]=>humour[1]=>options)
2)将数组元素的键指定为某个整数
$chars1[5]="humour";
$chars1[2]="options";
$chars1[]="sofer";
print_r($chars1);//Array([5]=>humour[2]=>options[6]=>sofer)
注意:
PHP数组是一个有序容器,数组按照向数组添加元素的顺序输出,而不是按照键的大小进行输出,可以将其称为数组的有序性。
PHP中的数组整数键不要求必须连续。
3)将数组的键指定为某个字符串
$chars1["a"]="humour";
$chars1["b"]="options";
$chars1["c"]="sofer";
print_r($chars1);//Array([a]=>humour[b]=>options[c]=>sofer)
4)使用array()语言结构创建数组
$colors=array("red"=>"red","blue"=>"blue",3=>"white",5);
print_r($colors);//Array([red]=>red[blue]=>blue[3]=>white[4]=>5)
创建数组的注意事项:
1)如果数组元素的键是一个浮点数,则键将被强制转换为整数;如果键时TRUE或者FALSE,则键被强制转换为1或0.
2)如果数组的键是一个字符串,且这个字符串完全符合整数格式时,数组元素的键将被强制转换为整数。
3)数组的键不能相等(注意使用的是==号比较)
不要使用red=>”red”这样的格式创建数组元素。
也不要使用#colors[red]=”red”这种形式。
red没带双引号。
PHP预处理器会将形如red=>”red”键值对中的red(不带双引号)作为常量处理,这时候如果没有定义red这个常量,就会出错。
php
$ccs=array(red=>"red","blue"=>"blue");
print_r($ccs);//Notice:
Useofundefinedconstantred-assumed'red'in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 学习 笔记