什么是PHP

PHP

PHP(Hypertext Preprocessor,超文本预处理器)是运行在服务器端的一种通用开源脚本语言,目前主要用于 Web 网站开发。
在 Web 网站运行过程中,服务器端通常只有一个,而客户端可以有多个。如下图:
第一个PHP页面 - 图1
客户端:也称为用户端,用于为客户提供本地服务程序。
一般来说,客户端就是我们使用的电脑,包括我们使用的浏览器,例如: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 代码。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>第一个PHP程序</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. echo "这里是PHP代码";
  10. ?>
  11. </body>
  12. </html>

代码讲解
1、嵌入PHP代码
<?php
echo “这里是PHP代码”;
?>
通过 <?php ?> 在 HTML 文档中嵌入 PHP 代码。
echo:是 PHP 的输出语句,用于向浏览器页面输出显示内容。

简单写法

通过“<?”和“?>”标记分隔 PHP 代码,也就是去掉了默认写法中的“php”关键字。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>第一个PHP程序</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?
  9. echo "这里是PHP代码";
  10. ?>
  11. </body>
  12. </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、变量名对大小写敏感。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>PHP定义变量</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. $score = 97;
  10. $userName = "小明";
  11. ?>
  12. </body>
  13. </html>

代码讲解
1、定义变量
$score = 97;
$userName = “小明”;
定义变量并赋值。
$score=97:定义一个变量,变量名为 $score,变量值为 97。
$userName=”小明”:定义一个变量,变量名为 $userName,变量值为 “小明”。
程序员在编写代码时,可以在程序中添加一些注释内容。注释,既不被程序编译,也不会被程序执行,仅仅起到一个解释说明的作用。

PHP中的注释

1、单行注释:
//注释内容
2、多行注释:
/
注释内容
注释内容
/

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>PHP注释</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. /*
  10. * 定义变量
  11. * $score变量,用于存储考试成绩
  12. * $userName变量,用于存储姓名
  13. */
  14. $score = 97; //成绩
  15. $userName = "小明"; //姓名
  16. ?>
  17. </body>
  18. </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、单引号中的变量,不会被解析

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>单双引号区别</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. $age = 15;
  10. $msg1 = '小明的年龄为:{$age}';
  11. $msg2 = "小明的年龄为:{$age}";
  12. echo $msg1;//输出结果:小明的年龄为:{$age}
  13. echo $msg2;//输出结果:小明的年龄为:15
  14. ?>
  15. </body>
  16. </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)
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>单双引号区别</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. $html = "<font color=\"red\" size=\"5\">PHP在线学习</font>";
  10. echo $html;//输出结果:<font color="red" size="5">PHP在线学习</font>
  11. ?>
  12. </body>
  13. </html>

代码讲解
1、转义字符
$html = “PHP在线学习“;
使用转义字符,处理双引号。
\”:转义字符。用于在当前字符串中,显示一个双引号。

常量

常量

常量是指值不会发生变化的量。它具有全局性,能在整个脚本中贯穿使用。如果常量值被定义,则该值在脚本执行期间都不能改变或取消定义。
注意:
1. 常量名前面没有 $ 符号
2. 常量习惯上以全大写方式命名
自定义常量语法格式:
方式一
define(key,value);
方式二
const 常量名 = 值;
使用 const 关键字定义常量时,只能包含标量数据(bool、int、float 、string)。
可以将常量定义为一个表达式,也可以定义为一个 array。
还可以定义 resource 为常量,但应尽量避免,因为可能会造成不可预料的结果。
例子

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>自定义常量</title>
  5. <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <?php
  9. //定义常量,常量名为PI,常量值为3.14
  10. define("PI",3.14);
  11. //输出常量PI的值
  12. echo PI;
  13. ?>
  14. </body>
  15. </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}”; //输出结果:我住在北京

  1. <?php
  2. print "<br>";
  3. print "HELLO";
  4. print "<br>";
  5. // 多个字符串之间使用 逗号 分隔
  6. // print "HELLO","PHP","WORLD";
  7. print "<br>";
  8. // . 是 php中的连接符,可以连接字符串,相当于js中的 +
  9. print "HELLO"."PHP"."WORLD";
  10. ?>

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, 则不会输出内容,而是将内容做为返回值返回.无意义.

  1. <?php
  2. print_r("HELLO");
  3. echo "<br>";
  4. // 默认输出时,直接将参数输出,返回值为1
  5. $ret = print_r("PHP");
  6. echo "<br>";
  7. echo $ret;
  8. echo "<br>";
  9. // 如果给定参数二 $return 的值为 true, 则不输出内容,将内容做为返回值返回
  10. $ret = print_r("PHP", true);
  11. echo "<br>";
  12. echo $ret;
  13. echo "<br>";
  14. $animals = array("cat","dog",'bird','duck',"pig");
  15. print_r($animals);
  16. ?>

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)

  1. <?php
  2. var_dump("HELLO");
  3. echo "<br>";
  4. $s = "PHP";
  5. var_dump($s);
  6. echo "<br>";
  7. $animals = array("cat","dog",'bird','duck',"pig");
  8. var_dump($animals);
  9. ?>