PHP 之基础
0x00 PHP的作用
1. 收集表单数据
2. 生成动态网页
3. 字符串处理
4. 动态输出图片
5. 处理服务器端文件系统
6. 编写数据库支持的网页
7. 会话跟踪控制
8. 处理XML文件
9. 支持大量的网络协议
10. 服务器端的其他相关操作
0x01 PHP代码嵌入位置
可以将PHP语言嵌入到扩展名为.php的HTML文件中的任何位置,只要在文件中使用"<?php"
起始符和终止符"?>"
就会开启PHP模式,在PHP模式中写入PHP语句即可将PHP语言嵌入到HTML文件中。
0x02 解读开始和结束标记
1. <?php ?>
2. <script language="php"></script>
3. <? ?>
4. <% %>
//前两种总是可用,第3、4种要在php.ini中开启short_open_tag和asp_tags
//双引号中的变量可以被解析,单引号中的变量不能被解析
0x03 指令分割符及空白符及注释符
- 一段代码中除了最后一行其他每句都要用分号结束(推荐每句都用分号结束)
- 空白符(空格、tab制表符、换行)会被php引擎忽略
- 注释符
1. 若觉得代码不合适则可以注释,但不要急于删除
2. 注释的目的在于说明程序
3. 注释对调试和编写程序可以起到很好的帮助作用
4. PHP注释符有:"/**/"、"//"、"#"
0x04 运算符
* 算数运算符:"+"、"-"、"*"、"/"、"%"
* 赋值运算符:"="、"+="、"-="、"*="、"/="、"%="
* 字符串运算符:"."、".="
* 递增/递减运算符:"++$a"、"$a++(先赋值再++)"、"--$a"、"$a--"
* 比较运算符
* == 等于
* === 全等(完全相同)
* != 不等于
* <> 不等于
* !== 不全等(完全不同)
* > 大于
* < 小于
* >= 大于或等于
* <= 小于或等于
* 逻辑运算符
* and 都为true则返回true
* or 至少有一个为true则返回true
* xor 有且仅有一个为true则返回true
* && 都为true则返回true
* || 至少有一个为true则返回true
* ! 不为true则返回true
* 数组运算符
* + 联合但不覆盖重复的键
* == 拥有相同键/值对则返回true
* === 拥有相同键/值对,且顺序相同、类型相同则返回true
* != 不等于则返回true
* <> 不等于则返回true
* !== 完全不同则返回true
0x05 数据类型
-
变量类型
- 布尔型(boolean,true,false)
- 整型(integer)
- 浮点型(float和double)
- 字符串(string)
- 数组(array)
- 对象(object)
- 资源类型(resource)
- NULL类型
- 伪类型(mixed,number,callback)
-
布尔类型
以下会被认为是FALSE,其他所有值都被认为是TRUE(包括任何资源)- 布尔值FALSE
- 整型值0(零)为假,-1和其他非零值都是TRUE
- 浮点型0.0
- 空白字符串和字符串“0”
- 没有成员变量的数组
- 没有单元的对象(仅适用于PHP4)
-
NULL类型
- NULL不区分大小写
- NULL类型唯一可能的值就是NULL
- NULL不代表空格、不代表零、不代表空字符串,而是表示一个变量的值为空
- 将变量直接赋值为NULL则为NULL
- 声明的变量尚未被赋值则为NULL
- 被unset()函数销毁的变量为NULL
0x06 类型转换
- 自动类型转换
- 有布尔值参与运算,则TRUE转换为整型1,FALSE为0,然后再运算
- 有NULL值参与的运算,NULL值转换为整型0,再参与运算
- 整型和float型参与运算则先把interger型转换为float型再运算
- 字符串和数字型数据参与运算时,字符串先转换为数字再参与运算
- 强制类型转换
- 变量前添加(int)、(float)、(string)、(bool)等
- 用函数intval()、floatval()、strval()
- 用函数settype()
0x07 变量引用
<?php
$a = 123;
$b = $a;
$a = 456; //此时$a为456,$b为123
$c = &$b;
$b = 111; //此时$b和$c都是111
?>
0x08 可变变量
<?php
$a = 'hello';
$$a = 'world'; //此时$a的值hello就相当于$$a的键
echo "$a $hello"; //输出hello world
?>
0x09 命名规则
//类中的命名规则
1.类名使用大写字母开头的单词(如CapWords, 即Pascal风格)
2.类的属性命名以字符'm'为前缀,其他用Pascal风格,如 $mStudentName
3.类的方法名除了第一个字母小写外其他采用Pascal风格且命名有意义,如function getTeacherName(){}
4.方法的参数名除了第一个字母小写外其他采用Pascal风格,如 function setName($firstName、$secondName){}
//一般变量命名规则
1.变量名开头是字母或下划线,后面跟任意数量的数字、字母、下划线,变量名中间不能有空格
2.所有字母都使用小写,使用'_'作为每个词的分界,如: $msg_error、$chk_pwd
3.临时变量通常被取名为i、j、k、m、n 且它们一般用于整型,而c、d、e、s 它们一般用于字符型
4.实例变量前面需要一个下划线,首单次小写,其余单词首字母大写
//其他变量命名规则
1.引用变量要带有前缀'r',如: &$rExam
2.全局变量应该带有前缀'g',如: global $gTest
3.静态变量应该带有前缀's',如: $sStatus
4.函数名称都使用小写字母,多个单词使用'_'来分割,如: function this_good_idear(){}