PHP基础知识小结
第一章 PHP基础语法
1.1 PHP中的注释
| 注释名称 | 代码样式 |
|---|---|
| 单行注释 | // 或 # |
| 多行注释 | /*...*/ |
注意:
多行注释中可以嵌套单行注释,但不可以嵌套多行注释。
PHP注释--使用实例
1.2 PHP的格式
写法一:
写法二:
省略?>不写,最后一行代码一定要写分号;若是写上?>,那么最后一行代码的分号可以省略不写。(要是PHP文件中含有HTMl代码,则一定要写上?>)
或
第二章 变量声明
变量,是指可变的量。一旦被声明后,可以动态去改变变量的值。
2.1 变量命名规范
- 以$符开头
- 由数字、字母、下划线组成,但不能以数字开头
- 可以用中文命名,但不推荐使用
- 严格区分大小写
- 要使用一个变量,必须先声明该变量
- 给变量命名时,要有一定的含义,即起到见名知意的作用
变量命名--使用实例
2.2 变量相关函数
| 函数 | 作用 |
|---|---|
| echo | 打印普通变量和字符串,不能打印数组 (打印true为1,打印false时,页面不显示任何信息) |
| print_r() | 打印变量信息,可以打印普通变量,常用于打印数组(打印true为1,打印false时,页面不显示任何信息s) |
| var_dump() | 打印变量的所有相关信息,可以打印出布尔型的true和false |
| isset() | 检测一个变量是否存在(被声明),若存在返回true,不存在返回false |
| unset() | 销毁变量,使该变量相当于未被声明过 |
注意:
print_r()在实际开发中,处理较多的数据时,使用效果比var_dump的效果要好。
变量相关函数--使用实例
2.3 可变变量$
可变变量--使用实例
aaa,然后是$aaa -> 王文$two = 'aaa';$$two = '王文';echo $aaa; //王文$one = 'bb';$bb = '哈哈';echo $$one; //哈哈 2.4 引用赋值&
变量的赋值,会自上而下覆盖前一个变量的值(变量总是传值赋值);但在使用&后则不再直接传值赋值,而是直接引用。此时,若&前后的任意一个值改变,两个变量的值都随之改变,且引用赋值后面的那个值一定是个变量。
引用赋值--使用实例
第三章 变量的数据类型
3.1 八种数据类型
| 分类 | 数据类型 | 类型组成 |
|---|---|---|
| 标量类型 | 布尔型 | true、false |
| 整型 | 正整数、负整数、0、进制 | |
| 浮点型 | 小数、科学计数法(1.7E308) | |
| 字符串 | 单引号、双引号、定界符 | |
| 复合类型 | 数组 | 1. 根据下表来分类 2. 根据维度来区分 |
| 对象 | 万事万物皆对象 | |
| 特殊类型 | 资源 | 创建图片,打开文件夹 |
| null | 什么都没有,不只是代表空 |
3.1.1 布尔型
建议使用var_dump()进行打印,当使用echo进行打印时,true会在页面显示 1,false则什么也不显示
| 六种(其他类型转化为布尔型)为false的情况,其他都为true |
|---|
| 布尔型的 0 |
| 整型的 0 |
| 浮点型的 0 |
| 空字符串和字符串为 0 (空字符串:字符串中不能有空格) |
| 空的数组 |
| 特殊类型null |
布尔型--使用实例
3.1.2 整型
进制:
二进制(以0b开头)、八进制、十进制、十六进制(以0x开头)
最大值与最小值
针对于32位操作系统,整型的最大值为2147483647,最小值为-2147483647,超过这个值则会变成浮点型。
整型--使用实例
3.1.3 浮点型
最大值为1.7E308(1.7*10的308次方),超过这个值则为INF(无穷大);最小值为-1.7E308,超过最小值则为-INF(负无穷大)。
浮点型--使用实例
3.1.4 字符串
字符串就是用单引号、双引号、定界符包含起来的字符,字符串没有长度限制。
单引号和双引号的区别
| 单引号 | 双引号 |
|---|---|
| 不解析变量、高效率、推荐使用 | 可以解析变量,变量前后应加上一个空格或{} |
| 不能嵌套使用单引号、可以嵌套双引号,要使用单引号需要转义字符(不能自插,只能互插) | 不能嵌套使用双引号,可以嵌套单引号,要使用双引号需要转义字符 |
| 转义字符只能转义自身和转义单引号 | 使用转义字符,只能转义它自身和双引号 |
| 不能解析特殊字符,使用特殊字符时,会显示反斜号 | 可以解析特殊字符 |
单引号与双引号--使用实例
';// 双引号// 可以解析变量,也可以解析特殊字符// 可以直接插入单引号,可以转义字符本身和双引号// 要想插入双引号,则需要加上转义字符\$a = '张三';$str = "{$a}该打的仗我'已经打过了,\"该跑的路\"我也跑到了\\尽头,老子信的道老子自己来守 我宁可\n\r\t做一辈子披荆斩棘的小丑,也绝不会变成你们这种人渣的样子";echo $str;
定界符的使用规范
定界符(<<<)声明时,在这个定界符后以一种标识符开始,然后以这个标识符结束。
定界符--使用实例
注意:
- 定界符后面加上标识符时,不能再加任何东西(包括空格、符号等)
- 作用与双引号一致,可以解析变量,适用于大量文本输入
- 标识符的命名符合PHP的命名规范,不能以数字开头
PHP中常用转义字符
| 转义字符 | 作用 |
|---|---|
| \n | 换行,将光标移到下一行的第一格 |
| \r | 回车,将光标移到当前行的第一格 |
| \t | 水平制表,将光标移到下一个水平制表位置(一个table符的距离) |
| \' | 单引号,显示一个单引号 |
| \" | 双引号,显示一个双引号 |
| \\ | 斜杠,显示一个斜杠 |
3.1.5 数组
| 根据下标来分类 | 根据维度来分类 |
|---|---|
| 索引数组 (下标全是数字的) | 一维数组 (只有一个array进行嵌套的) |
| 关联数组 (下标全是字符串的) | 二维数组 (有两个array进行嵌套使用) |
| 混合数组 (小标既有数字又有字符串的) | 多维数组 (有两个以上的array进行嵌套使用) |
数组--使用实例
1,'name'=>'张三','sex'=>'男');var_dump($arr2);// 3. 混合数组 下标既有数字又有字符串的$arr3 = array(1,'name'=>'李四',18);var_dump($arr3);// 根据维度来分类// 1. 一维数组$arr4 = array(1,2,3);var_dump($arr4);// 2. 二维数组 同一数组中嵌套一个数组$arr5 = array(array(1,'name'=>'tom'),array(1,2,3),);var_dump($arr5);// 3. 多维数组 同一数组中嵌套两个及以上的数组$arr6 = array(array(array(1,2,3),array(1,2,3),),);var_dump($arr6); 3.1.6 对象
万事万物皆对象,后面会讲到类与对象的关系,指一类事物形成的对象
类:指具有相同特征的一类事物
3.1.7 资源
资源指的是连接两者的通道,在PHP中,资源指的是打开一个文件或图片等。
3.1.8 null
null是PHP中一种特殊的类型,null不区分大小写(NULL)
| 三种被认为是null的情况 |
|---|
| 1. 直接赋值为null |
| 2. 直接打印尚未被赋值的变量 |
| 3. unset()函数销毁一个变量 |
null--使用实例
3.2 检测变量是否被声明
issert()检测变量是否被声明,如果被声明返回true,否则返回falseempty()检测变量的值是否为空、零、假、null,如果是返回true,否则返回false
检测变量函数--使用实例
3.3 判断数据类型
| 函数 | 作用 |
|---|---|
| is_bool() | 判断是否是布尔型 |
| is_int() | 判断是否是整型 |
| is_float() | is_real() | 判断是否是浮点型 |
| is_string() | 判断是否是字符串 |
| is_array() | 判断是否是数组 |
| is_object() | 判断是否是对象 |
| is_resource() | 判断是否是资源 |
| is_null() | 判断是否是null |
| is_scalar() | 判断是否是标量 |
| is_numeric | 判断是否是任何类型的数字和数字字符串 |
| is_callable | 判断是否是有效的函数名 |
注意:
标量是指整型、浮点型、布尔型和字符串型。
判断数据类型--使用实例
3.4 数据类型转换
PHP属于弱类型语言,不像java, C++等语言是强类型语言,区别在于,弱类型的语言是自动转换数据类型,强类型语言必须手动声明类型。
3.4.1 自动类型转换
自动类型转换中,标量的四种类型和null可以进行自动类型转换。但实际使用中,只有布尔型和字符串间的转换有意义。
其中,布尔型自动转换时,true-->1 false-->0
字符串自动转换时,会从左往右进行选值,当遇到数值时则保留(数值中遇到其他字符只保留前面无其他字符的数值),遇到字母则直接舍去。
自动类型转换--使用实例
3.4.2 强类型转换
类型转换仅当次有效
括号加类型名
(int)$a函数名加变量
intval($a) boolval() strval() floatval()类型转换永久有效
使用settype()函数进行永久类型转换,settype()函数中有两个参数,第一个为要改变类型的变量,第二个为要改变的类型名
强类型转换--使用实例
';// 1.2 使用函数名加变量// boolval() intval() floatval() strval()// var_dump(boolval($a));var_dump(intval($a));var_dump(floatval($a));var_dump(strval($b));var_dump($a);var_dump($b);echo '
';// 2. 永久有效的类型转换 settype()settype($a,'integer');var_dump($a); //0var_dump($a); //0 第四章 常量
4.1 常量
常量,是指常驻内存(即不变)的量,常用来连接数据库。用define来进行声明
常量定义格式
define('常量名','常量值',false) // false 常量名区分大小写,默认情况下就是false
define('常量名','常量值',true) // true 常量名不区分大小写 常量名的命名规范
- 不能以$符开头
- 由数字字母下划线组成,但不能以数字开头
- 可以用中文命名,但不推荐使用
- 常量一旦被命名后,则不可以再次声明相同名称的常量
- 常量名推荐使用大写字母
- 常量全局有效
defined() 函数用来检测一个常量名是否被声明
常量名--使用规范
';// echo aa;echo bb;echo '
';// 1. 不能以$符开头// 2. 常量名以数字字母下划线组成,但不能以数字靠头define('a_11','不能以数字开头');// define('11a','不能以数字开头');echo a_11;// echo 11a;echo '
';// 3. 常量名可以使用中文,但不推荐使用define('张三','你真的好帅');echo 张三;echo '
';// 4. 常量名一旦被声明,不能再声明相同名称的常量// define('张三','上面被声明过吗');// echo 张三;// 5. 常量名推荐使用大写字母define('CC','这是推荐使用的哦');echo CC;echo '
';// 6. 常量名全局有效// defined() 函数用来检测一个常量名是否被声明// 括号中记得加上引号,常量被声明返回true 否则返回falsevar_dump(defined('CC'));var_dump(defined('DD'));
4.2 系统常量和魔术常量
- 系统常量
PHP_OS PHP运行的系统内核名称
PHP_VERSION PHP版本号 - 魔术常量
__LINE__ 返回当前行的行号
__FILE__ 返回当前文件的全部路径以及文件名 系统、魔术常量--使用实例
第五章 运算符
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。(是可以通过一个以上的值进行运算,产生另一个值)
5.1 算数运算符
算术运算符:+ - * / % ++ -- 算数运算符--使用实例
5.2 连接运算符
神奇的米粒(.)
字符串运算符的用途:
- 字符串与字符串之间的连接
- 字符串与变量之间的连接
- 变量与字符串之间的连接
- 变量与变量之间的连接
连接运算符--使用实例
'.'就不要想得太美';echo '
';// 2. 字符串与变量间的连接$str = '该打的仗已经打完了';echo '我依旧是个小丑'.$str;echo '
';// 3. 变量与字符串间的连接echo $str.'我依旧是个小丑';echo '
';// 4. 变量与变量间的连接$str2 = '
小丑';echo $str.$str2; 5.3 赋值运算符
| 运算符 | 含义 |
|---|---|
| = | 将一个值或者表达式的结果赋值给变量 |
| += | 将变量与所赋的值相加后的结果赋值给变量 |
| -= | 将变量与所赋的值相减后的结果赋值给变量 |
| *= | 将变量与所赋的值相乘后的结果赋值给变量 |
| /= | 将变量与所赋的值相除后的结果赋值给变量 |
| %= | 将变量与所赋的值求模后的结果赋值给变量 |
| .= | 将变量与所赋的值连接后的结果赋值给变量 |
赋值运算符--使用实例
5.4 比较运算符
| 运算符 | 含义 |
|---|---|
| > | 大于,当左边的值大于右边的时候返回true,否则返回false |
| < | 小于,当左边的值小于右边的时候返回true,否则返回false |
| >= | 大于等于,当左边的值大于等于右边的时候返回true,否则返回false |
| <= | 小于等于,当左边的值小于等于右边的时候返回true,否则返回false |
| == | 等于,两边的数值都相等时返回true,否则返回false |
| === | 全等于,两边的值和类型全都相等的时候返回true,否则返回false |
| != | 不等于,两边的值不相等的时候返回true,否则返回false |
| !== | 全等于,两边的值和类型全都不相等的时候返回true,否则返回false |
比较运算符--使用实例
$b); //falsevar_dump($a < $b); //truevar_dump($a >= $b); //falsevar_dump($a <= $b); //truevar_dump($d == $c); //truevar_dump($d === $c); //faslevar_dump($c <>$d); //false <>等同于 !=var_dump($c != $d); //falsevar_dump($c !== $d); //true
5.5 逻辑运算符
| 运算符 | 含义 |
|---|---|
逻辑与 && (and) | 一边为假,即为假 |
逻辑或 ||(or) | 一边为真,即为真 |
逻辑非 ! | 真变成假,假变成真 |
| 逻辑异或 (xor) | 相同为假,不同为真 |
逻辑运算符--使用实例
5.6 其他运算符
| 运算符 | 含义 |
|---|---|
?: | 三元运算符,用于简单的逻辑判断(结果只有false或true的) |
| `` | 执行运算符,用于输出windows系统cmd中的命令结果 |
| @ | 错误控制运算符,用于抑制PHP中的notice错误 |
| => | 数组下标指定符,指定数组的下标和值 |
其他运算符--使用实例
$b ?1:0;// 2.执行运算符 ``(反引号)// 如果要正确显示文字,只要将火狐浏览器中的查看->文字编码 改为简体中文即可echo '';echo `ipconfig`;echo `tree`;// 3. 错误控制运算符 @// 让notice错误不显示echo @$c;// 4. 数组下标指定符$arr = array('name'=>'sea','age'=>18);var_dump($arr); 5.7 逻辑与或的短路特征
逻辑与
逻辑与运算符前面为假时,则不再执行后面的代码
逻辑或
逻辑或运算符前面为真时,则不再执行后面的代码
逻辑与或短路特征--使用实例
第六章 流程控制
代码执行顺序:从上到下,从左到右
常用的分支结构
if语句
if(){}只能管理花括号里面的内容,该内容被称为代码块或语句体if...else语句
- switch...case从句
分支结构--使用实例
第七章 循环结构
循环结构的三要素:初始值、循环条件、改变条件
7.1 常用的循环结构
- for循环
for(表达式1,表达式2,表达式3){循环体语句
} - while循环
while(判断条件){循环体语句
} - do...while循环(了解)
do{循环体语句
}while(判断条件) 循环结构--使用实例
输出1到100的数// 1. for循环for ($i=1; $i <= 100; $i++) { echo $i.' ';}echo '
';// 2. while循环$j = 1;while ($j <= 100) {echo $j.' ';$j++;}echo '
';// 3. do...while循环$h = 1;do {echo $h.' ';$h++ ;} while ($h <= 100); 7.2 特殊形成控制
| 特殊控制名称 | 作用 |
|---|---|
| break | 跳出整个循环,执行下面的代码 |
| continue | 跳出本次循环,进入下次循环 |
| exit 或 die | 终止程序运行 |
特殊形成控制--使用实例
第八章 函数
函数是一种功能,通过调用,可以实现特定的一些功能。
函数分为系统函数和自定义函数
函数的要点:
函数的作用
函数的参数
函数的返回值
8.1 自定义函数
函数的基本格式
/*function 函数名(参数1,参数2,...){函数体 (php语句)[return 返回值]}调用方法函数名();*/ 函数的命名规范
- 函数的命名规范遵循PHP的命名规范,数字、字母和下划线组成,但不能以数字开头
- 不区分大小写,但我们一般使用小写
- 不能重复声明函数名一样的函数
function_exists()函数用于检测函数名是否被生命,括号内的函数名一定要加上引号
声明自定义函数--使用实例
8.2 函数的return返回值
return返回值的作用
- 如果函数中存在return并且执行了该return,那么该函数的将执行结构可以被变量接受。
- 如果函数的执行过程中执行了return语句,后续的代码将不再执行。
return与echo的区别
echo 函数中使用echo时,调用函数就可以打印相应变量的值。
return 函数中只使用return时,想要打印相应变量的值,还需要echo等函数
函数返回值--使用实例
8.3 函数的形参和实参
形参:形式上的参数,声明函数时小括号中的参数
- 形参可以有默认值,也可以没有默认值
- 如果形参有默认值,则需要将有默认值的参数放在最右边(因为实参传值总是从左边第一个开始传值)
- 形参没有默认值,必须需要实参进行传值
- 形参只是起到占位的作用,多个形参之间用逗号进行隔开
实参:实际的参数,调用函数时小括号中的填写的内容
实参的个数可以比形参多,但多出来的实参并没有任何作用。所以,一般情况下,实参个数等同于形参个数。
只有当形参有默认值时,实参的个数少于形参的个数。
函数的参数--使用实例
8.4 其他函数(了解)
其他函数包含:
可变参数函数、变量函数、匿名函数和递归函数
匿名函数实际上就是将一个函数赋值给了变量,所有需要先声明这个函数,再能调用。(这种用法,在JavaScript中比较常见)
8.5 函数中的变量作用域
php中的作用域,指的是局部变量和全局变量(即变量在函数内或函数外)。
普通变量: 不调用不执行,每次调用时都要申请一个空间去执行,结束后清楚掉空间。
静态变量: 相对于内存而言,是静止不动的变量。函数调用结束后,不从内存中消失,下次直接使用。
常量的作用与静态变量相仿,当常量无法像静态变量那样随时修改变量的值。
变量作用域--使用实例
'; // 4echo func().'
'; // 4echo func().'
'; // 4function func1(){static $b = 3;$b += 1;return $b;}echo func1().'
'; // 4echo func1().'
'; // 5echo func1().'
'; // 6 第九章 文件包含
include include_once 文件包含
require require_once 也是文件包含,但有必须存在的意思
被报包含的文件,如果内部有return返回值,会把整个函数返回到包含的地方。
1. 文件包含的作用
通常用于多个文件的重复代码,将其生成一个文件引入即可。
2. include和require的区别
include 引入一个不存在的文件会报一个warning的错误,但代码继续执行。
一般用于广告等第三方代码的引入。
require 引入一个不存在的文件会报一个warning的错误,代码终止执行。
一般用于底层库等重要文件的引入。
3. 加once的作用
_once 指的是代码仅引入一次,如果之前引入过,则不再重复引入。
第十章 数组
数组的本质是指存储、操作和管理一组变量。
键值对的概念:$arr = array('name'=>'sea','age'=>18);
每个数组有多个值,多个值中间用逗号隔开,每个逗号内的数据被称为一个单元。
每个单元都有键、下标(=>)和值,即键值对的方式。声明下标时,该单元的下标即为声明的值,否则,下标为整数。(获取数组中的值时,就是通过数组的下标进行取值的)
10.1 数组的声明方式
- 使用array()的方式声明(常用)
'sea','age'=>18,'sex'=>'男');var_dump($arr1);// 3. 混合数组$arr2 = array('name'=>'sea',18,'sex'=>'女');var_dump($arr2);
使用[]的方式声明(5.6版本以上才能使用)
直接赋值法声明(
$arr[]='sea';)
10.2 数组的增删改查
'sea','age'=>18,'sex'=>'男','address'=>'南京');// 1. 增$arr[] = 'happy';$arr['hobby'] = '读书';// 2. 删// 2.1 删除一个单元unset($arr['sex']);// 2.2 清空数组// $arr = array();// 2.3 删除整个数组// unset($arr);// 3. 改$arr['hobby'] = '跑步';// 4. 查var_dump($arr); 10.3 数组的遍历
一维数组的取值一般都是用键值对的方式
数组的变量方法众多,像for循环遍历、foreach遍历、while list each遍历等,这里,我只介绍最常用的遍历方式
foreach遍历数组的格式:
foreach(要遍历的数组 as 键=>值){循环体;
} foreach遍历数组--使用实例
array('name'=>'张三','age'=>18,'sex'=>'男'),1=>array('name'=>'李四','age'=>20,'sex'=>'男'),2=>array('name'=>'王二','age'=>30,'sex'=>'女'),3=>array('name'=>'李文','age'=>42,'sex'=>'男'),);var_dump($arr);foreach ($arr as $key => $value) {echo $value['name'];echo $value['age'];echo $value['sex'].'
';} 10.4 超全局数组变量
超全局数组变量,是系统提供的,且在任何作用域下都可以使用的变量。
超全局数组变量的字母都是大写的
1. $_SERVER--- 服务器和执行环境信息
2. $_GET--- 获取地址栏的信息
Document
小白
3. $_POST--- 收集method=post表单中的值
Document
4. $_FILES--- 打印文件上传是否成功的内容信息
表单类型为file时,form标签必须添加第三个属性enctype="multipart/form-data"来配合文件上传,method方式也要是post
Document
第十一章 系统函数列表
见附录集
转载于:https://www.cnblogs.com/jingbai/p/php-basic.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
