一、简介
1、平台支持:
window,linux unix
2、网站:
静态网站,保存在服务器上的文件,每个网页都是一个独立的文件,内容相对稳定,容易被搜索引擎检索,没有数据库的支持,交互性较差,在功能方面有较大的限制。.html;.xml;.shtml;
动态网站,根据用户的要求和选择而动态的改变和响应
3、服务器:
能够提供服务的机器,取决于机器上所安装的软件
web服务器,提供web服务,即网站访问,需要安装web服务软件,apache,tomcat,iis...
4、IP:
每台电脑有一个唯一的IP地址
5、域名:
www.itcast.cn,便于记忆和沟通一组服务器的地址
特殊IP:127.0.0.1
特殊域名:localhost
6、DNS:
域名系统 domain name system,因特网上作为域名和IP地址相互映射的分布式数据库,方便访问
用户输入域名Localhost-DNS(localhost 127.0.0.1)-服务器电脑
7、端口:
设备和外界通讯的出口,分为虚拟端口和物理端口
8、web程序访问流程:
浏览器发起访问-DNS-服务器电脑-服务软件
静态网站访问:
动态网站访问:
9、环境搭建(公司)
10、MySQL
PHP本身不具备操作MySQL数据库的能力,需要配置MySQL扩展
11、配置虚拟主机
virtual machine 提供真实主机所实现的功能
二、PHP基本语法
一种运行在服务器端的脚本语言,可以嵌入到HTML中
1、代码标记
<?php
代码块
?>//可以省略
2、注释
//
#
/*
*
*/
3、语法结束符
;
最后一个语句可以省略;
4、变量
变量用来存储数据,可改变可访问
不需要任何关键字定义变量
$var1=1;
访问变量
echo $var1;
修改变量
$var1=2;
echo '<hr/>', $var1;//换行输出值2
删除变量
unset($var1);//unset(变量名)
echo $var1;//输出notice:undefined variable
命名规则:
必须以$开头,字母、数字、下划线构成,不能以数字开头,允许中文(不建议)
预定义变量:
提前定义的变量,系统定义的变量,存储需要用到的数据(数组)
可变变量:
一个变量保存的值刚好是另一个变量的名字,可以直接通过访问一个变量得到另一个变量值,在变量前多加一个$
变量传值:
值传递(拷贝,不同的地址);引用传递(同一个地址)
内存分区:
栈区:程序可以操作的内存部分,少但快
5、常量
定义:
使用函数:define(‘PI’,3.14);
使用const关键字:const PII = 3;
6、数据类型
指存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型
类型转换:
类型判断:
is_XXX(变量名)数据类型相同结果为true,失败为false
使用var_dump查看,不能用echo查看
类型设定:
gettype(变量名):获取类型
settype(变量名,类型):设定类型,与强制转换不同,强制转换类型变量名,是对数据值复制的内容进行处理,不会处理实际存储的内容;settype会直接改变数据本身
7、连接运算符
.将两个字符串连接到一起
.=复合运算,将左边的内容与右边的内容连接,重新赋值给左边变量
A.=B等价于A=A.B
8、错误抑制符
@:在可能出错的表达式前面使用
9、三目运算符
表达式?表达式2:表达式3
10、流程控制
顺序结构
分支结构
循环结构
三、函数
1、定义:
function,是一种语法结构,将实现某一个功能的代码块封装到一个结构体中,从而实现代码的重复利用
2、命名规范:
字母、数字、下划线;不能以数字开头;驼峰法,xxYyZz;下划线法:xx_yy_zz
3、语法:
function 函数名(形参){
//函数体
}
//调用函数
//函数的调用可以在函数定义之前
函数名(实参);//函数是在代码执行阶段,碰到函数名字时才会调用,不是在编译阶段
//实参的个数可以大于等于形参个数
4、默认值:
举例:
5、引用传值
在形参前加&,对应的实参必须为变量,此时对形参的操作会影响其本身
6、函数体
- 定义变量
- 定义常量
- 使用流程控制
- 调用函数
return关键字:返回当前函数的结果,当前函数运行结束
7、作用域
全局变量:用户普通定义的变量(函数外部定义。理论上函数内部不可使用)
局部变量:在函数内部定义的变量
超全局变量:系统定义的变量
函数体内访问全局变量的方式:
第一种:超全局变量可以纳入全局变量供函数体内部使用:$GLOBALS['全局变量名']
第二种:global关键字
静态变量:为了跨函数调用数据
静态变量的作用原理:
8、可变函数
9、匿名函数
变量保存匿名函数本质得到的是一个对象(closure)
基本语法:
变量名 = Function(){
//函数体
};
闭包:
闭包的使用:
10、伪类型
mixed
number
11、系统函数
输出:
print()类似于echo输出提供的内容,本质是一种结构(不是函数),返回1,可以省略括号
print_r()类似于var_dump
12、函数的函数
四、错误处理
1、错误分类
- 语法错误
- 运行错误
- 逻辑错误
2、错误代号
3、错误触发
4、错误处理
开启错误日志
自定义错误处理
五、字符串
1、定义语法
2、字符串转义
模式:反斜杠+字母
\r\n回车换行
单引号和双引号的区别:
- 单引号能识别\',而双引号不能识别\'
- 双引号中因为能识别$符号,所以双引号可以解析变量
3、字符串长度
strlen()
开启mbstring扩展
mbstring扩展针对不同的字符集,strlen只针对标准交换码ASCII
六、数组
1、概念
array,将一组数据存储到一个指定的容器中,用变量指向该容器,通过变量一次性得到该容器中所有数据
2、定义数组
3、二维数组
符号:=> 键指向值
4、数组遍历
foreach遍历:
语法:
foreach($数组变量 as [$下标 =>] $值){
//通过$下标访问元素的下标,通过$值访问元素的值
}
通常如果是关联数组(字母下标),就需要下标,如果是数字下标就直接访问值
for循环遍历:
要求数组元素的下标是有规律的