什么是PHP
PHP
PHP(Hypertext Preprocessor,超文本预处理器)是运行在服务器端的一种通用开源脚本语言,目前主要用于 Web 网站开发。
在 Web 网站运行过程中,服务器端通常只有一个,而客户端可以有多个。如下图:
客户端:也称为用户端,用于为客户提供本地服务程序。
一般来说,客户端就是我们使用的电脑,包括我们使用的浏览器,例如:IE、Firefox、Chrome等。
服务器端:用于为客户端提供服务。
服务的内容包括:向客户端提供资源、保存客户端数据等。
PHP 语言,如今已经发展到了 PHP7.0+ 的版本。PHP 各个版本及发展时间,如下表所示:
| 时 间 | 版 本 |
|---|---|
| 1995年初 | PHP 1.0 |
| 1995年6月 | PHP 2.0 |
| 1998年6月 | PHP 3.0 |
| 2000年5月 | PHP 4.0 |
| 2004年7月 | PHP 5.0 |
| 2015年12月 | PHP 7.0 |
PHP的优势:
1、易学
它的语法混合了C语言、Java语言、Perl语言的特点。对于有一定开发语言基础的人员来说,该语言比较容易,可以很快地掌握。
2、开源
所有人都可以看到源代码,开源代码具有更强的可靠性和安全性。
3、跨平台
PHP可以支持所有的服务器操作系统,例如:Windows、Linux等。
4、面向对象
具有所有面向对象的特点,使程序易维护、效率高、易扩展等。
5、免费
LAMP开发环境“Linux + Apache + MySQL + PHP”组合全部免费,为企业减少了很大一笔开支。
6、速度快
PHP是一种强大的CGI脚本语言,其执行速度比Perl、Asp等速度更快,占用系统资源更少。
网络请求通信过程(了解)
IP: 用来在网络当中定位一台绝对的主机电脑.(IPV4,IPV6)
LAN: 局域网
POPT: 端口号(在一台主机中,定义应用程序使用)
域名: 是IP地址的一种关系映射,方便记忆
DNS: 域名解析服务(本地: /etc/hosts, 202.106.0.20)
TCP/IP: 传输控制协议,用来发起网络请求
- 连接有三次握手
- 断开连接有四次挥手
HTTP: 超文本传输协议
- 请求报文
- 请求行
- 请求头
- 空行
- 请求体(POST)
- 响应报文
- 响应行
- 响应头
- 空行
- 响应体(实际请求数据)
Apache: Web服务器软件 (Tomcat, python, Ngix ), 用来接收客户端的请求.
MySQL: 数据库服务器, 存储数据
PHP: PHP程序解析器(处理PHP代码文件)
PHP标记符
在学习 PHP 之前,需要对 HTML、CSS、JavaScript 有一定的了解,因为 PHP 文件可包含 HTML、CSS、JavaScript、PHP 代码。PHP 文件的扩展名为“.php”。
通常情况下,PHP 代码都会被嵌入到 HTML 文档中。在 PHP7.0+ 中,将 PHP 代码嵌入到 HTML 文档中,有以下 2 种写法:
1、默认写法
通过“<?php”和“?>”标记分隔 PHP 代码,通过这种风格,可以在 HTML 文档的任意位置嵌入 PHP 代码。
<!DOCTYPE html><html><head><title>第一个PHP程序</title><meta charset="utf-8" /></head><body><?phpecho "这里是PHP代码";?></body></html>
代码讲解
1、嵌入PHP代码
<?php
echo “这里是PHP代码”;
?>
通过 <?php ?> 在 HTML 文档中嵌入 PHP 代码。
echo:是 PHP 的输出语句,用于向浏览器页面输出显示内容。
简单写法
通过“<?”和“?>”标记分隔 PHP 代码,也就是去掉了默认写法中的“php”关键字。
<!DOCTYPE html><html><head><title>第一个PHP程序</title><meta charset="utf-8" /></head><body><?echo "这里是PHP代码";?></body></html>
代码讲解
1、嵌入PHP代码
<?
echo “这里是PHP代码”;
?>
通过 <? ?> 在 HTML 文档中嵌入 PHP 代码。
echo:是 PHP 的输出语句,用于向浏览器页面输出显示内容。
PHP标记符使用特点:
1、标记符,可以出现在页面任意位置。
2、标记符,在同一页面可以出现多次。
3、标记符,不能嵌套。
4、标记符当中,只能出现 php 代码。
5、标记符中的所有代码,都运行在服务器端。
变量
变量是计算机语言中存储信息的容器,变量可以借助于变量名进行访问。而 PHP 是一种弱类型语言,我们通过 PHP 定义变量时,并不需要指定变量的数据类型。
PHP定义变量语法格式:
$变量名;
或
$变量名 = 值;
PHP变量命名规则:
1、PHP 变量的定义,由前缀符号 $ 和 变量名 两部分组成。
2、变量名由字母、数字、下划线组成,第一个字符不能是数字。
3、不能把 PHP 关键字和保留字作为变量名。
4、变量名对大小写敏感。
<!DOCTYPE html><html><head><title>PHP定义变量</title><meta charset="utf-8" /></head><body><?php$score = 97;$userName = "小明";?></body></html>
代码讲解
1、定义变量
$score = 97;
$userName = “小明”;
定义变量并赋值。
$score=97:定义一个变量,变量名为 $score,变量值为 97。
$userName=”小明”:定义一个变量,变量名为 $userName,变量值为 “小明”。
程序员在编写代码时,可以在程序中添加一些注释内容。注释,既不被程序编译,也不会被程序执行,仅仅起到一个解释说明的作用。
PHP中的注释
1、单行注释:
//注释内容
2、多行注释:
/
注释内容
注释内容
/
<!DOCTYPE html><html><head><title>PHP注释</title><meta charset="utf-8" /></head><body><?php/** 定义变量* $score变量,用于存储考试成绩* $userName变量,用于存储姓名*/$score = 97; //成绩$userName = "小明"; //姓名?></body></html>
代码讲解
1、多行注释
/
定义变量
$score变量,用于存储考试成绩
$userName变量,用于存储姓名
/
向程序中添加多行注释。
*2、单行注释
//成绩
//姓名
向程序中添加单行注释。
数据类型
数据类型,是指变量中存储的数据的类型。
PHP 的数据类型,可以分为:标量数据类型、复合数据类型、特殊数据类型。如下表:
| 数据类型种类 | 包括的数据类型 |
|---|---|
| 标量数据类型 | Interger、Float、String、Boolean |
| 复合数据类型 | Array、Object |
| 特殊数据类型 | Resource、NULL |
注:在本章节我们只介绍标量数据类型。复合数据类型、特殊数据类型在后边的章节会详细介绍。
标量数据类型是最基本的数据类型,在 PHP 中,标量数据类型分为 4 种。如下表:
| 类 型 | 中 文 | 说 明 |
|---|---|---|
| Integer | 整型 | 存储一个整数,包含正整数、0、负整数 |
| Float | 浮点型 | 存储一个小数,但也可以用来存储整数 |
| Boolean | 布尔型 | 存储 true 或 false,true 代表真、false 代表假 |
| String | 字符串类型 | 存储一个字符串,字符串必须用双引号或单引号引起来 |
标量数据类型介绍
1、Integer
介绍
整型,可以用十进制、二进制、八进制、十六进制表示,默认采用十进制。
在数字前面加上 0 表示八进制整数,加上 0x 表示十六进制整数,加上 0b 表示二进制整数。
使用方法
$a = 12; //十进制
$c = 013; //八进制
$d = 0b1010; //二进制
$e = 0x3f; //十六进制
2、Float
介绍
浮点型,也叫双精度型或实数。
使用方法
$a = 3.14; //小数
$b = 1.2e3; //科学计数法,代表 1.2 乘以 10 的 3 次方
$c = 7e-3; //科学计数法,代表 7 乘以 10 的 -3 次方
3、Boolean
介绍
布尔型,他只有两个值,包括:true、false,布尔型通常用在判断语句中。
使用方法
$a = true; //布尔型变量等于真
$b = false; //布尔型变量等于假
4、String
介绍
字符串类型,由一系列字符连接而成,字符串需要用单引号或双引号引起来。
使用方法
$a = “F”; //存储一个字符
$b = “HelloWorld”; //存储英文字母
$c = “北京”; //存储汉字
$d = ‘PHP编程语言’; //单引号字符串
5、单双引号的区别:
1、双引号中的变量,会被解析
2、单引号中的变量,不会被解析
<!DOCTYPE html><html><head><title>单双引号区别</title><meta charset="utf-8" /></head><body><?php$age = 15;$msg1 = '小明的年龄为:{$age}';$msg2 = "小明的年龄为:{$age}";echo $msg1;//输出结果:小明的年龄为:{$age}echo $msg2;//输出结果:小明的年龄为:15?></body></html>
代码讲解
1、单引号字符串
$msg1 = ‘小明的年龄为:{$age}’;
通过单引号,定义一个字符串类型的变量,变量名为 $msg1。
$age:将 $age 的变量值,嵌入到字符串 $msg1 中。
注意:$msg1 是单引号字符串,所以字符串中的 $age 变量,不会被程序解析。
2、双引号字符串
$msg2 = “小明的年龄为:{$age}”;
通过双引号,定义一个字符串类型的变量,变量名为 $msg2。
$age:将 $age 的变量值,嵌入到字符串 $msg2 中。
注意:$msg2 是双引号字符串,所以字符串中的 $age 变量,会被程序解析。
PHP会对双引号中的一些特殊字符进行解析,我们可以通过转义,来显示这些特殊字符。
常见转义字符,如下表:
| 转义字符 | 说明 |
|---|---|
| \b | 退格(BS),将当前位置移动到前一列 |
| \n | 换行(LF),将当前位置移动到下一行开头 |
| \r | 回车(CR),将当前位置移动到本行开头 |
| \t | 水平制表(HT),跳到下一个TAB位置 |
| \v | 垂直制表(VT) |
| \\ | 表示反斜杠字符“\” |
| \‘ | 表示单引号字符 |
| \“ | 表示双引号字符 |
| \? | 表示问号 |
| \0 | 表示空字符(NULL) |
<!DOCTYPE html><html><head><title>单双引号区别</title><meta charset="utf-8" /></head><body><?php$html = "<font color=\"red\" size=\"5\">PHP在线学习</font>";echo $html;//输出结果:<font color="red" size="5">PHP在线学习</font>?></body></html>
代码讲解
1、转义字符
$html = “PHP在线学习“;
使用转义字符,处理双引号。
\”:转义字符。用于在当前字符串中,显示一个双引号。
常量
常量
常量是指值不会发生变化的量。它具有全局性,能在整个脚本中贯穿使用。如果常量值被定义,则该值在脚本执行期间都不能改变或取消定义。
注意:
1. 常量名前面没有 $ 符号
2. 常量习惯上以全大写方式命名
自定义常量语法格式:
方式一
define(key,value);
方式二
const 常量名 = 值;
使用 const 关键字定义常量时,只能包含标量数据(bool、int、float 、string)。
可以将常量定义为一个表达式,也可以定义为一个 array。
还可以定义 resource 为常量,但应尽量避免,因为可能会造成不可预料的结果。
例子
<!DOCTYPE html><html><head><title>自定义常量</title><meta charset="utf-8" /></head><body><?php//定义常量,常量名为PI,常量值为3.14define("PI",3.14);//输出常量PI的值echo PI;?></body></html>
代码讲解
1、定义常量
define(“PI”,3.14);
定义常量,常量名为 PI,常量值为 3.14。
2、使用常量
echo PI;
将常量 PI 的值,输出到浏览器页面。
预定义常量
PHP 向它运行的任何脚本提供了大量的[预定义常量],不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了
注意: 下列括号中的内容表示该常量表示的数据类型,并不是参数
- **PHP_VERSION (string)
当前 PHP 版本的字符串,”主版本号.子版本号.阶段版本号[扩展信息]”形式。
- **
PHP_MAXPATHLEN(int)
当前 PHP 版本支持的最大文件名(包括路径)长度。
- **PHP_OS(string)
运行 PHP 的操作系统。
- `PHP_EOL** (string)**<br /> 当前平台中对于换行符的定义。<br />- **PHP_INT_MAX` (int)
当前 PHP 版本支持的最大整型数字。在 32 位系统中通常为 int(2147483647),64 位系统中为 int(9223372036854775807)。
-**PHP_INT_MIN(int)
当前 PHP 版本支持的最小整型数字。在 32 位系统中通常为 int(-2147483648),64 系统中为 int(-9223372036854775808)。通常情况下 PHP_INT_MIN === ~PHP_INT_MAX。
- `PHP_INT_SIZE` (int)
当前 PHP 版本的整数大小(以字节为单位)。魔术常量
PHP中有九个魔术常量它们的值随着它们在代码中的位置改变而改变。
魔术常量,是 PHP 的系统常量,也叫做预定义常量。常用魔术常量,如下表:
| 常量名 | 说明 |
|---|---|
| LINE | 返回当前代码的行号 |
| FILE | 返回当前文件的完整路径 |
| CLASS | 返回当前的类名 |
| METHOD | 返回当前的方法名 |
| FUNCTION | 返回当前的函数名 |
输出语句
输出语句,用于将数据显示到浏览器。PHP常用输出语句,包括:echo、print、print_r、var_dump四种。
输出语句介绍
1、echo
介绍
用于输出一个或多个字符串信息,输出所有参数。不会换行。
echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以,并且没有返回值。
echo(不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。
注意,如果你想给 echo 传递多个参数, 那么就不能使用小括号。
使用方法
$city = “北京”;
echo $city; //输出结果:北京
echo “
PHP很有趣!
“; //输出结果:PHP很有趣!
echo “我住在{$city}”; //输出结果:我住在北京
echo “这是一个”,”完整的”,”字符串”; //输出结果:这是一个完整的字符串
2、print(了解)
介绍
用于输出一个字符串信息,也就是输出 arg。
print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。
和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。
使用方法
$city = “北京”;
print $city; //输出结果:北京
print “
print输出语句
“; //输出结果:print输出语句
print “我住在{$city}”; //输出结果:我住在北京
<?phpprint "<br>";print "HELLO";print "<br>";// 多个字符串之间使用 逗号 分隔// print "HELLO","PHP","WORLD";print "<br>";// . 是 php中的连接符,可以连接字符串,相当于js中的 +print "HELLO"."PHP"."WORLD";?>
3、print_r
介绍
用于打印变量,以更容易理解的形式展示
使用方法
print_r(mixed $expression, bool $return = false): mixed
$cityList = array(“北京”,”上海”,”天津”);
print_r($cityList); //输出结果:Array ( [0] => 北京 [1] => 上海 [2] => 天津 )
print_r() 是一个函数,使用时,必须加 括号
print_r — 以易于理解的格式打印变量。如果输出内容是标量类型,那么直接输出值
mixed 等同于 联合类型 object|resource|array|string|int|float|bool|null。
$return 参数默认为 false, 表是只输出,返回数据, 如果改为 true, 则不会输出内容,而是将内容做为返回值返回.无意义.
<?phpprint_r("HELLO");echo "<br>";// 默认输出时,直接将参数输出,返回值为1$ret = print_r("PHP");echo "<br>";echo $ret;echo "<br>";// 如果给定参数二 $return 的值为 true, 则不输出内容,将内容做为返回值返回$ret = print_r("PHP", true);echo "<br>";echo $ret;echo "<br>";$animals = array("cat","dog",'bird','duck',"pig");print_r($animals);?>
4、var_dump
介绍
用于输出变量的相关信息
使用方法
var_dump(mixed $value, mixed …$values): void
var_dump() 也是一个函数,括号不能省略.
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。
数组和对象将递归展开值,通过缩进显示其结构。
$city = “北京”;
$year = 2020;
var_dump($city); //输出结果:string(6) “北京”
var_dump($year); //输出结果:int(2020)
<?phpvar_dump("HELLO");echo "<br>";$s = "PHP";var_dump($s);echo "<br>";$animals = array("cat","dog",'bird','duck',"pig");var_dump($animals);?>
