1 表单域
eg:
表单域这些名称将在php脚本中复用,因此给表单域定义有意义的名称是非常重要的,这样便于我们记住他们。
2 在HTML中嵌入PHP
通过浏览器是无法直接查看到嵌入的php代码的,但是可以看到PHP运行后的代码,用该脚本的输出代替了脚本本身。浏览器不需要理解php。
2.1 PHP标记
PHP标记有两种不同风格
1)XML风格
<?php xxxxxxx ?>
该风格的标记可以在XML(可扩展置标语言)文档中使用。
2)简短风格
<? xxxxxxxx ?>
该风格最遵循SGML(标准通用置标与语言)处理说明的风格,使用该风格需要在配置文件中启用short_open_tag选项,或者启用短标记编译php。
该风格不推荐使用,因为它在许多环境下默认是不支持的。
2.2 空格
在php中的间隔字符,例如换行、空格和tab,它们都会被认为是空格。在HTML中也存在此特性。
1
2
3
4
5
6
7 1eg:
2echo "hello";
3echo "hello";
4和
5echo "hello";echo "hello";
6
7
是等价的,但是第一种更方便代码的阅读。
2.3 注释
1
2
3
4
5 1/* */
2//
3#
4
5
3 添加动态内容
1
2
3
4
5 1<?php
2echo "<p>hello,time is ".date('H:i, jS F Y')."</p>";
3?>
4
5
结果:
3.1 调用函数
php具有一个功能丰富的函数库,开发人员可以使用这个函数库开发web应用,函数库大部分都是需要传入一部分数据,然后再返回一些数据。
date(‘H:i, jS F Y’)
我们将括号内的字符串传递给函数,这个字符串就是函数的自变量或参数。
3.2 使用date()函数
H 是小时,如果是个位数,会在前面补0。
i 是分钟,如果是个位数,会在前面补0。
j 是该月的日期,不需要补0。
s 表示顺序后缀,本例为rd。(?)
F 是月份的全称。
Y 是该年。
4 访问表单变量
4.1 表单变量
表单域定义的变量可以在后台php代码中接受到,可以使用get、post、request三种方法接收。
4.2 变量和字面量
1
2
3
4 1变量:$tired
2字面量:' tires<br />' 它的值就是来自其字面值。
3
4
4.3 php中字符串的类型
1."xxxxx"中的内容是解析执行的
2.'xxxxx’中的内容是原样输出。
3.heredoc语法
5 理解标识符
标识符就是变量的名称。(函数和类的名称也是标识符)
除了从HTML表单中传入的变量外,你还可以声明你自己的变量。
php的特性之一是它不要求在使用变量之前声明变量。当第一次给一个变量赋值时,便是创建了这个变量。
我们也可以将变量赋值给变量。
6 PHP的变量类型
6.1 PHP的数据类型
Integer(整数):表示整数。
Float(浮点数,也叫double,双精度):用来表示所有的实数。
String(字符串):表示字符串。
Boolean(布尔):用来表示true或者false。
Array(数组):用来保存具有相同类型的多个数据项。
Object(对象):用来保存类的实例。
另外,还有3个特殊的数据类型:NULL(空)、resource(资源)、callable。
6.2 类型强度
PHP是一种弱类型,PHP中的变量能“自动地”获得输入的数据类型,并转换为相同类型的数据。
6.3 类型转换
1
2
3
4
5 1eg:
2$bianliang=0;
3$bianliang2=(float)$bianliang;
4
5
6.4 可变变量
PHP允许我们可以动态地改变一个变量的名称。
原理:用一个变量的值作为另一个变量的名称。
例如:
1
2
3
4 1$name1='name2';
2$$name1=5 等价于 $name2=5
3
4
1.8 声明和使用常量
常量值一旦被设定后,在脚本的其他地方就不能再更改。
我们使用define函数定义常量,常量前面没有$符号。
例如:
define(‘CHANGLIANG’,100); //常量习惯用大写字母,非必须。
如果要使用一个常量的值,可以直接使用其名称。
如:echo CHANGLIANG;
PHP中自定义了一些常量和变量,我们可以通过phpinfo()函数查看。
变量和常量的一个区别是,常量只可以保存布尔值、整数、浮点数或字符串数据,这些数据都是标量数据。
7 理解变量的作用域
1
2
3
4
5
6
7 1作用域值得是一个脚本中某个变量在哪些地方可以使用或可见。
2
3$_GET和$_POST数组以及一些特殊变量都具有各自的作用域规则,这被称为超级全局变量,他们可以在任何地方使用和可见,包括内部函数和外部函数。
4例如:
5$_GET、$_SERVER、$_FILES、$_SESSION。
6
7
8 使用操作符
8.1 算术操作符
+、-、*、/、%(取余)
我们可以将-号当作一个一元操作符,即只有一个运算对象。表示负值。
算术运算符通常用于整数或双精度数。如果他们应用与字符串,PHP会试图将这些字符串转化为数字,如果包含‘a’或‘A’字符,他就会被当作科学表示法并被转化为浮点数,否则将会被转化成整数。PHP会在开始处找数字,如果没找到数字,该字符串值为0。
8.2 字符串操作符
我们可以使用(.)将字符串连接。
8.3 赋值操作符
1
2
3
4
5
6 1赋值操作符(=),其读法为“被设置为了”。
2复合赋值操作符:
3eg:$a += 5; 等价于 $a = $a+5;
4(每一个算数操作符和字符串连接都有一个对应的复合操作符。如-+、*+、/+、.+等)
5
6
1
2
3
4
5 1前置递增递减(++$a)和后置递增递减($a++)操作符
2前置:
3先做+1运算,再打印$a的值。
4
5
1
2
3
4 1后置:
2先打印$a的值,再做+1运算。$a的值也随之变化。
3
4
引用操作符(&)
1
2
3
4
5
6
7
8
9
10
11
12 1引用操作符就像是一个别名:
2eg:
3$a=5;
4$b=&$a;
5$a=7
6这时$a和$b的值都为7,$b也就相当于一个别名了。
7
8$a和$b都指向了相同的内存地址,你可以重置变量不指向原来的内存地址:
9unset($a)
10重置操作不会影响$b的值。
11
12
8.4 比较操作符
1
2
3
4
5
6
7
8
9
10 1等于操作符(==)
2判断两个值是否相等,相等返回true,不相等返回false。
3
4其他比较操作符
5=== 恒等(需要数值和数值类型都相等。)
6!= 不等
7!== 不恒等
8<> 不等
9
10
8.5 逻辑操作符
1
2
3
4
5
6
7 1&& and
2|| or
3xor xor
4! not
5and和or的优先级比&&和||要低。
6
7
8.6 位操作符
1
2
3
4
5
6
7
8
9 1& 按位与
2| 按位或
3~ 按位非
4^ 按位异或
5<< 左位移
6(eg:$a<<$b,将$a左移$b位。)
7>> 右位移
8
9
8.7 其他操作符
1
2
3
4
5 1“,”用来分割函数参数和其他列表项。
2“new”用来初始化类的实例。
3“->”访问类的成员。
4
5
if-else的表达式写法
1
2
3
4
5
6
7 1<?php
2 $b=30;
3 $c=$a>=50 ? 'pass' : 'no';
4 echo $c
5?>
6
7
错误抑制操作符
1
2
3
4 1@ 可以在任何表达式前面使用
2eg:$a=@(57/0)
3
4
执行操作符(超级牛逼)
1
2
3 1“ `` ”一对反单引号。
2
3
数组操作符
1
2
3 1[]、=>
2
3
类型操作符
1
2
3 1instanceof
2
3
9 操作符优先级
从左到右,优先级降低:
1
2
3 1& ^ | && || ?: +=等 print and xor or ,
2
3
10 使用变量处理函数
10.1 测试和设置变量类型
gettype()返回传入的变量类型。
settype()改变传入的变量类型。
10.2 测试变量状态
isset() 变量存在返回true,否则false。
empty() 用来检查一个变量是否存在,存在返回false,不存在返回true。
11 根据条件进行决策。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 1while循环:
2$a=50;
3while($b<=250){
4echo $b;
5$a+=50;
6}
7
8for循环:
9for($a=50; $b<=250; $b+=50){
10echo $b;
11}
12功能方面while和for循环是等价的
13
14foreach循环语句,用于数组的使用。
15
16do...while循环
17即使我们的条件在一开始就是错误的,但循环在检查条件之前还是会执行一次。
18$num=100;
19do{
20echo $num
21}while ($num<1);
22
23
12 跳出脚本
break 跳出本次循环,从循环体后面的第一条语句开始执行。
continue 跳到下一次循环。
exit 终止PHP程序。
13 使用其他控制结构的语法
1
2
3
4
5
6
7
8
9
10
11 1代替花括号:
2{ 可用 : 代替
3} 可用 endif、endswitch、endwhile、endfor、endforeach代替
4
5eg:
6if ($a==0) :
7echo "hello!";
8exit;
9endif;
10
11