目录
一、什么是php?
php是一种运行在服务器端的脚本语言,可以嵌入到html中。
二、php代码标记
标准标记:
这种标记是官方推荐使用,还有其他标记方法。
<?php
echo "Hello,php"; //输出一句话
?>
三、php注释
行注释(一次注释一行):
// c++风格注释
# Shell风格注释
块注释(一次性注释多行):
/* C风格注释 */
四、php常量
常量声明方式:
php中常量必须使用define()函数声明且一旦声明不可修改。
参数$name和$value是必选的,分别用于指定常量的名称和值。
参数$case_insensitive是可选的,用于指定常量名称是否对大小写敏感,如果是true,表示不敏感,默认情况为false,即对大小写敏感。
define("变量名",值)
<?php
define("DEFINE","hello");
echo DEFINE;
?>
五、php变量
变量由$和变量名组成
$a=10;
1、数据类型
boolean布尔类型
值只有true和false;
不区分大小写,true = TRUE
代码:
$bool1=true; $bool2=false;
integer整型
用来表示不包含小数部分的数,可以用二进制、八进制.....表示;
八进制表示时,数字前需要加上0;
十六进制表示,数字前加0x;
如果给定的数字超出最大范围,则导致数据丢失精度。
例:
$a=123; $b=-123; $c=0123(八进制,等于83)
float浮点型
可存储整数和小数,有两种书写格式:
方式一:标准格式
$a=3.1415;
方式二:科学计数法格式
$b=2.58E1
string字符串
字符串是连续的字符序列,可以由字母、数字、符号组成,字符串中每个字符只占一个字节。
定义方式是单引号和双引号,例:
$a=‘字符串’; $b=“字符串”;
注意:在双引号中的字符串会被解析,而在单引号中的字符串不会被解析。
检测变量的数据类型
变量的数据类型是在赋值时确定的,为了检测变量所赋的值是否是期望的数据类型,php提供了一组is_*()函数,括号内的参数为要检测的变量,如果检测变量符合,则返回true,否则false。
函数名称 |
功能描述 |
is_bool |
检测变量是否属于布尔类型 |
is_string |
检测变量是否属于字符串类型 |
is_float |
检测变量是否属于浮点类型 |
is_integer |
检测变量是否属于整型 |
is_null |
检测变量是否属于空值 |
is_array |
检测变量是否属于数组 |
is_resource |
检测变量是否属于资源 |
is_object |
检测变量是否属于对象类型 |
is_numeric |
检测变量是否属于数字或数字组成的字符串 |
2、可变变量
php中,可以将一个变量的值作为另一个变量的名称,这就是可变变量;
可变变量是一种特殊的变量,它的名称不是事先定义好的,而是可以动态地设置与使用。
例:
变量
$txt = 'abc';
可变变量
$$txt = 'Hello';
等价于:
$abc = 'Hello';
3、自动类型转换
自动类型转换指的是变量的类型由php自动转换,我们无需任何操作,最常见的自动类型转换有三种,分别为转为布尔型、转为整型、转为字符型。
①转为布尔型
以下情况转换为false
- 整型0转为布尔型
- 浮点型值0.0转换为布尔型
- 空字符串,以及字符串“0”转换
- 不包含任何元素的数组转换
- 不包含任何成员的对象
除了以上几种情况,其他值都会被转换为true
②转为整型
- 布尔型转换成整型:布尔值true,转换成整数1;false转换成0。
- 浮点型转换成整型:浮点数转换成整数时,向下取整。
- 字符串型转换成整型:字符串的开始部分决定它的值,如果该字符串以合法的数值开始,则使用该数值,否则为0;合法数值包括:正负号,后面跟着一个或多个数字。
③转为字符串型
- 布尔型转换成字符串:true转换成“1”,false转换成空字符“ ”。
- 整型或浮点型转换成字符串:把数字字面样式转换成string形式。
例:
<?php
$foo = "100page"; //$foo声明一个字符串;
$foo +=2; //$foo现在是一个整型,值为102;
$foo = $foo + 1.3; //$foo现在是一个浮点数,值为103.3;
$foo = null + "10 Little Piggies"; //$foo现在是一个整型,值为10;
$foo = 5 + "10.05 yuan"; //$foo现在是一个浮点型,值为15.05
?>
4、强制类型转换
只需在变量前加一个小括号,并把目标类型写在括号里即可实现。
强转类型 |
功能描述 |
(boolean) |
强转为布尔型 |
(string) |
强转为字符串型 |
(integer) |
强转为整型 |
(float) |
强转为浮点型 |
(array) |
强转为数组 |
(object) |
强转为对象 |
六、php运算符
常见的运算符分为九类:
运算符类型 |
运算符 |
算术运算符 |
用于处理四则运算 |
字符串运算符 |
用于连接字符串 |
赋值运算符 |
用于将表达式的值赋给变量 |
递增或递减运算符 |
用于自增或自减运算 |
比较运算符 |
用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 |
用于根据表达式的值返回真值或假值 |
位运算符 |
用于处理数据的位运算 |
错误控制运算符 |
用于忽略因表达式运算错误而产生的错误信息 |
instanceof |
用于判断一个对象是否是特定类型的实例 |
1、算术运算符
运算符 |
运算 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
- |
负号 |
-2 |
-2 |
+ |
加 |
5+5 |
10 |
- |
减 |
6-4 |
2 |
* |
乘 |
3*4 |
12 |
/ |
除 |
5/5 |
1 |
% |
取模(即算术中的求余数) |
7%5 |
2 |
2、赋值运算符
可以通过一条赋值语句对多个变量赋值,例:
<?php
$a;
$b;
$c;
$a=$b=$c=5;
echo $a.'--'.$b.'--'.$c;
?>
运算符 |
运算 |
范例 |
结果 |
= |
赋值 |
$a=3;$b=2; |
$a=3;$b=2; |
+= |
加等于 |
$a=3;$b=2;$a+=$b; |
$a=5;$b=2; |
-= |
减等于 |
$a=3;$b=2;$a-=$b; |
$a=1;$b=2; |
*= |
乘等于 |
$a=3;$b=2;$a*=$b; |
$a=6;$b=2; |
/= |
除等于 |
$a=3;$b=2;$a/=$b; |
$a=1.5;$b=2; |
%= |
模等于 |
$a=3;$b=2;$a%=$b; |
$a=1;$b=2; |
.= |
连接等于 |
$a='abc';$a .= 'def'; |
$a='abcdef' |
3、递增递减运算符
php支持纯字母(a-z和A-Z)的递增运算,其他字符无效;
例:
<?php
$a = "A";
$a++;
echo $a
?>
// 结果为"B"
运算符 |
运算 |
范例 |
结果 |
++ |
自增(前) |
$a=2;$b=++$a; |
$a=3;$b=3; |
++ |
自增(后) |
$a=2;$b=$a++; |
$a=3;$b=2; |
-- |
自减(前) |
$a=2;$b=--$a; |
$a=1;$b=1; |
-- |
自减(后) |
$a=2;$b=$a--; |
$a=1;$b=2; |
4、比较运算符
运算符 |
运算 |
范例($x=5) |
结果 |
== |
等于 |
$x == 4 |
false |
!= |
不等于 |
$x != 4 |
true |
<> |
不等于 |
$x <> 4 |
true |
=== |
恒等 |
$x === 5 |
true |
!== |
不恒等 |
$x !== '5' |
true |
> |
大于 |
$x > 5 |
false |
>= |
大于或等于 |
$x >= 5 |
true |
< |
小于 |
$x < 5 |
false |
<= |
小于或等于 |
$x <= 5 |
true |
5、逻辑运算符
结果为布尔型
运算符 |
运算 |
范例 |
结果 |
&& |
与 |
$a && $b |
$a和$b都为true,结果为true,否则为false |
|| |
或 |
$a || $b |
$a和$b中至少有一个为true,则结果为true,否则为false |
! |
非 |
!$a |
若$a为false,结果为true,否则相反 |
xor |
异或 |
$a xor $b |
$a和$b其一为true,但不同时是,结果为true,否则为false |
and |
与 |
$a and $b |
与&&相同,但优先级较低 |
or |
或 |
$a or $b |
与||相同,但优先级较低 |
6、位运算符
针对二进制数的每一位进行运算的符号,专门针对数字0和1进行操作。
运算符 |
名称 |
例子 |
结果 |
& |
按位与 |
$a & $b |
$a和$b每一位进行“与”操作后的结果 |
| |
按位或 |
$a | $b |
$a和$b每一位进行“或”操作后的结果 |
~ |
按位非 |
~ $a |
$a的每一位进行“非”操作后的结果 |
^ |
按位异或 |
$a ^ $b |
$a和$b每一位进行“异或”操作后的结果 |
<< |
左移 |
$a << $b |
将$a左移$b次(每一次移动都表示“乘以2”) |
>> |
右移 |
$a >> $b |
将$a右移$b次(每一次移动都表示“除以2”) |
7、错误控制运算符
使用@符号表示,放在表达式前,将忽略该表达式可能产生的任何错误信息;
@只对表达式有效,可以放在变量、函数including()调用、常量之前,但不能放在函数或类的定义前。
例:
$a = @4/0;
8、运算符优先级
优先级自上至下递减。
结合方向 |
运算符 |
无 |
New |
左 |
[ |
右 |
++ -- ~ (int) (float) (string) (array) (object) @ |
无 |
Instanceof |
右 |
! |
左 |
* / % |
左 |
+ - . |
左 |
<< >> |
无 |
== != === !== <> |
左 |
& |
左 |
^ |
左 |
| |
左 |
&& |
左 |
|| |
左 |
? : |
右 |
= += -= *= /= .= %= &= |= ^= <<= >>= |
左 |
and |
左 |
xor |
左 |
or |
左 |
, |
七、流程控制语句
主要包括选择结构语句和循环结构语句。
1、选择结构语句
常见的有:if、if...else、if....elseif....else和switch...case四种
if语句
例:
<?php
$num=90;
if($num>60){
echo '合格';
}
echo '<br />';
echo '程序结束';
?>
if...else语句
例:
<?php
$num=90;
if($num>60){
echo '合格';
}else{
echo '不合格';
}
echo '<br />';
echo '程序结束';
?>
if...elseif....else语句
例:
<?php
header('content-type:text/html;charset=utf-8');
$num=87;
if($num>=90){
echo '优秀';
}elseif($num>=80){
echo '良好';
}elseif($num>=60){
echo '及格';
}else{
echo '不及格';
}
echo '<br />';
echo '程序结束';
?>
switch语句
可以使用分号代替case语句后的冒号;
如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次;
switch语句中的break可以使用continue代替;
语法格式如下:
switch (表达式){
case 目标值1:
执行语句1
break;
......
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
2、循环结构语句
有while、do...while、for三种。
while循环
例:
<?php
$a=1;
while($a<=5){
echo '$a='.$a.'<br />';
$a++;
}
?>
do...while循环
执行语句在do{}中,循环体会无条件执行一次。
例:
<?php
$a=1;
do{
echo '$a='.$a.'<br />';
$a++;
}while($a<=5);
?>
for循环
<?php
for($i=1;$i<=5;$i++){
echo '$i='.$i.'<br />';
}
?>