PHP介绍
1、什么是PHP
PHP(Hypertext Preprocessor 超文本预处理器) 的简称,是一种被广泛应用的开源通用的服务器端脚本语言,适用于 Web 开发并可嵌入 HTML 中。
- 特点:
- 通用:指跨平台,如:Windows、Linux、MacOS
- 开源:意味着你可以轻松获取全部源代码,并进行定制或扩展
- 免费:意味着你不必为PHP花一分钱,哪怕用在商业项目中
- 服务器端:意味着你必须将它安装在服务器环境下才可以使用
- 脚本语言:解释型语言,按编写顺序执行。是指不需要编译,直接由解释器/虚拟机执行的编程语言
2、PHP
能干嘛?
- 可以快速动态的生成HTML页面
- 可以返回前端需要的各种类型的数据
- 可以高效安全的处理表单数据
- 可以安全的操作服务器上的文件
- 可以控制与客户端的会话( Cookie/Session )
- 可以对用户的行为进行授权控制
- 可以高效安全的操作各种类型的数据库
- 通过扩展,可以实现加密,压缩等其他功能
- 可以提供接口数据,包括:小程序、APP、等其他语言
3、php
程序执行流程

环境介绍
1、web
环境
- 使用 PHP 需要先安装环境,安装环境比较麻烦,需要安装Web服务、PHP应用服务器、MySQL管理系统。
- Web服务:apache 和 nginx
- PHP:多版本
- MySQL:多版本
2、环境集成包
基础语法
一、php 程序
- PHP 文件的默认扩展名是 ".php"
- PHP 文件中可以包含
html
、CSS
、JavaScript
代码
组成 |
描述 |
<?php ... ?> |
PHP 标记 |
PHP代码 |
函数、数组、流程控制、类、方法... |
; 、{} |
语句结束符 |
空白符 |
合理使用空白符可增强代码可读性 |
注释 |
// 单行注释 , /* 多行注释 */ |
1、PHP
标记
- 开始标记
<?php
和 结束标记 ?>
中间写 PHP
代码
<?php
?>
当解析一个文件时,PHP
会寻找起始和结束标记,也就是告诉 PHP
开始和停止解析二者之间的代码。此种解析方式使得 PHP
可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP
解析器忽略。
2、PHP
代码
指令 |
描述 |
echo |
可以输出一个或多个字符串,用逗号(,)隔开 |
print |
只允许输出一个字符串 |
3、语句结束符 ;
<?php
echo 'Hello Code';
?>
4、注释
<?php
// 这是单行注释
/*
这是多行注释
注释后,在浏览器和网页源码中,是看不到的。
*/
?>
二、php
变量
1、声明变量
<?php
$a = 'Hello Code';
?>
2、赋值运算符
3、php
连接符
<?php
$a = 'Hello';
$b = 'Code';
echo $a . $b;
?>
4、变量命名规则
注意:保证变量名的唯一性,变量名重复会导致后声明的变量会覆盖之前声明的变量
数据类型
一、php
标量数据类型
类型 |
描述 |
布尔型 Boolean |
true 和 false |
整型 Integer |
0 - 无限大 |
浮点型 Float |
带小数的数字 |
字符串 String |
汉字、英文、符合、其它国家语言 |
echo 输出数据值,开发时使用
var_dump 可以打印数据类型和值,测试时使用
1、整型
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制、十六进制、八进制
<?php
$a = 1;
?>
2、浮点型
<?php
$b = 1.1;
?>
3、字符串
- 可以用单引号
' '
也可以用双引号" "
- 双引号
" "
声明的变量如果里面有变量会输出变量的值
<?php
$c = 'Hello PHP';
$a = 'Hello';
echo "$a Code";
?>
4、布尔型
<?php
$d = true;
$e = false;
?>
二、php
复合数据类型
类型 |
描述 |
array |
数组 |
object |
对象 |
callable |
可调用 |
iterable |
可迭代 |
三、php
特殊数据类型
类型 |
描述 |
空值 NULL |
表示变量没有值 |
resource |
资源 |
1、NULL
<?php
$null;
var_dump($null);
echo '<hr>';
$null = '';
var_dump($null);
echo '<hr>';
$null = null;
var_dump($null);
?>
运算符
一、运算符
运算符 |
描述 |
+ |
相加 |
- |
相减 |
* |
相乘 |
/ |
相除 |
% |
取余 |
++ |
加加 |
-- |
减减 |
. |
连接、用在字符串 |
二、赋值运算符
运算符 |
描述 |
= |
赋值运算符 |
+= |
先加,后赋值 |
-= |
先减,后赋值 |
*= |
先乘,后赋值 |
/= |
先除,后赋值 |
%= |
先取余,后赋值 |
.= |
先连接,后赋值 |
三、比较运算符
运算符 |
描述 |
> |
大于 |
>= |
大于等于 |
< |
小于 |
<= |
小于等于 |
== |
等于 |
!= |
不等于 |
=== |
恒等于 |
!== |
恒不等 |
1、===
恒等于
===
先比较类型,类型不一致直接返回false
,类型相同则比较值
!===
恒不等则反之
<?php
var_dump(1 === 1);
echo '<br>';
var_dump(1 === '1');
?>
四、逻辑运算符
运算符 |
描述 |
and 和 && |
与 |
or 和 ` |
|
xor |
异或 |
! |
非 |
数组
一、数组
类型 |
描述 |
数组 Array |
数组可以在一个变量中存储多个值 |
1、创建空数组
<?php
$a = array(); // 方法一
$b = []; // 方法二
?>
2、创建索引数组
<?php
$arr = array(
'小明',
'小红',
'小刚'
);
?>
3、创建关联数组
<?php
$a = array(
'小红' => '女',
'小明' => '男'
);
echo $a[小红];
?>
4、打印数组 print_r
<?php
$a = array(
'小红' => '女',
'小明' => '男' );
print_r($a);
?>
二、php
多维数组
1、二维数组
<?php
$a = array(
[1,2],[3,4]
);
?>
2、多维数组访问
<?php
$a = array(
[1,2],[3,4]
);
echo $a[0][1];
?>
三、php
数组循环
1、foreach
循环
<?php
$a = array(
'1',
'2',
'3',
'4'
);
foreach ($a as $v) {
e cho $v;
echo '<br>';
}
?>
2、key
和 value
<?php
$a = array(
'1' => '苹果',
'2' => '香蕉',
'3' => '梨子',
'4' => '西瓜'
);
foreach ($a as $k => $v) {
echo $k;
echo $v;
echo '<br>';
}
?>
条件判断
1、三元运算符 ? :
<?php
$name = '小米';
$Null = '';
echo $name ? "名字是$name" : '未找到名字';
echo '<br>';
echo $Null ? "名字是$name" : '未找到名字';
?>
2、if
<?php
$name = '小米';
if ($name) {
echo "$name";
}
?>
3、if
else
<?php
$name = '小米';
if ($name == false) {
echo "$name";
}else {
echo '未找到该变量';
}
?>
4、if
elseif
else
<?php
$name = '小米';
if ($name == false) {
echo "$name";
}else if ($name == true){
echo '找到该变量';
}else {
echo '未找到该变量';
}
?>
5、switch
case
default
<?php
$name = '小米';
switch ($name) {
case $name == '小名':
echo "名字是$name";
case $name == '小明':
echo "名字是$name";
case $name == '小米':
echo "名字是$name";
default:
echo '该变量未查询到有匹配值';
}
?>
循环
1、while
<?php
$a = 1;
while ($a < 5) {
echo "打印了$a" . '次' . '<br>';
$a ++;
}
?>
2、do
while
<?php
$a = 1;
do {
$b = '这是do先做的东西' . '<br>';
echo $b;
echo "打印了$a" . '次' . '<br>';
$a++;
}while ($a < 5);
?>
3、for
<?php
$a = 1;
for ($i = 1;$i < 5;$i++) {
echo "输出$i" . '次' . '<br>';
}
?>
4、continue
- 执行到
continue
时跳出当前循环执行下一个循环
- 在循环语句中使用
while
for
<?php
$a = 1;
for ($i = 1;$i <= 5;$i++) {
if ($i == 3) {
echo '检测到变量i=3' . '<br>';
continue;
}
echo "输出$i" . '次' . '<br>';
}
?>
5、break
- 运行到break能结束当前循环
- 可以跳出多层循环
- 在循环语句中使用
while
for
switch
示例1:
<?php
$a = 1;
for ($i = 1;$i <= 5;$i++) {
if ($i == 3) {
echo '检测到变量i=3' . '<br>';
break;
}
echo "输出$i" . '次' . '<br>';
}
?>
示例2:
<?php
$name = '小米';
switch ($name) {
case $name == '小名':
echo "名字是$name";
break;
case $name == '小米':
echo "名字是$name";
break;
default:
echo 'End';
}
?>
函数
一、函数介绍
1、什么是函数
- 函数是一段可以重复执行的代码片断
- 函数是实现代码复用的重要手段
- 函数是现代编程语言最重要的基本单元
- 函数永远是编程的核心工作
2、函数的分类
- 根据函数的提供者(编写者),分为二类
- 系统函数: 编程语言开发者事先写好提供给开发者直接使用的
- 自定义函数: 用户根据自身需求,对系统功能进行扩展
二、系统函数
- PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数。
函数集合名 |
描述 |
String |
字符串处理函数 |
Array |
数组函数允许您访问和操作数组 |
MySQLi |
允许您访问 MySQL 数据库服务器 |
Date |
服务器上获取日期和时间 |
Filesystem |
允许您访问和操作文件系统 |
Mail |
数学函数能处理 integer 和 float 范围内的值 |
HTTP |
允许您在其他输出被发送之前,对由 Web 服务器发送到浏览器的信息进行操作 |
Calendar |
日历扩展包含了简化不同日历格式间转换的函数 |
Directory |
允许您获得关于目录及其内容的信息 |
Error |
允许您对错误进行处理和记录 |
Filter |
进行验证和过滤 |
FTP |
通过文件传输协议 (FTP) 提供对文件服务器的客户端访问 |
MySQL |
允许您访问 MySQL 数据库服务器 |
SimpleXML |
允许您把 XML 转换为对象 |
XML |
允许我们解析 XML 文档,但无法对其进行验证 |
Zip |
压缩文件函数允许我们读取压缩文件 |
1、String
字符串函数
函数 |
描述 |
strtolower() |
将字符串转化为小写 |
strtoupper() |
将字符串转化为大写 |
strlen() |
获取字符串长度 |
trim() |
去除字符串首尾处的空白字符(或者其他字符) |
ltrim() |
去除字符串开头的空白字符(或者其他字符) |
rtrim() |
去除字符串结尾的空白字符(或者其他字符) |
str_replace() |
字符串替换 |
strpbrk() |
字符串中查找一组字符是否存在 |
explode() |
将字符串分割为数组 |
md5() |
将字符串进行md5加密 |
2、Array
数组函数
函数 |
描述 |
count() |
数组中元素的数量 |
implode() |
把数组元素组合为字符串 |
array_merge() |
两个数组合并为一个数组 |
in_array() |
数组中是否存在指定的值 |
sort() |
对数值数组进行升序排序 |
rsort() |
对数值数组进行降序排序 |
array_unique() |
移除数组中的重复的值 |
array_push() |
将一个或多个元素插入数组的末尾 |
array_pop() |
删除数组中的最后一个元素 |
三、自定义函数
1、函数的基本语法
// 创建函数
function fun_name(参数列表)
{
//函数体: 由一条或多条语句组成,可以为空
}
- 必须使用关键字:
function
声明
- 函数名称不区分大小写,多个单词推荐使用下划线连接
2、调用函数和传参
<?php
function add($a = 0,$b = 0) {
return $a + $b;
}
$i = 3;
$j = 5;
echo add($i,$j);
?>
- 方法参数可以有默认值,有默认值可以不传值
- 方法必须以返回的方式,不要用
echo
输出的方式
3、作用域
- php中, 只有函数作用域和全局作用域
- 所有函数作用域中的变量,外部不可见
- 全局作用域声明变量,在函数中是可见的
<?php
$name = '小明';
function name() {
global $name;
return '名字为:' . $name;
}
echo name();
?>