PHP动态网站开发知识总结

单元一 PHP程序开发基础

PHP概述:PHP是什么:超文本预处理器,是一种在服务器端执行的多用途脚本语言。PHP开放源代码,可嵌入到HTML中,尤其适合动态网站的开发。

1.1 PHP语言特性

1.免费开源,自由获取

2.移植性强,组件丰富

3.语言简单,开发效率高

4.PHP功能强大的函数库

1.2 PHP开发环境与工具

1.2.1 PHP开发环境

PHP是一种服务器脚本语言,除了安装一个PHP程序库外,还需要安装Web服务器、数据库系统以及一些扩展内容。PHP能够运行在绝大多数主流的操作系统上,包括Linux、UNIX、Windows以及Mac OS等。PHP支持Apache、IIS、Nginx等网络服务器。

1.LAMP环境介绍

LAMP环境是Linux+Apache+MySQL+PHP相关环境的简称。指Linux操作系统、Apache网页服务器、MySQL数据库管理系统、PHP脚本4种技术。其本身都是各自独立的软件,但是以内常被结合在一起使用,并拥有越来越高的兼容度,所以共同组成了一个强大的Web应用程序平台。

Linux是一种自由和开放源代码的类UNIX操作系统。因为Linux的稳定性和高负载性,所以很多公司会选择它作为系统上线运营的正式环境。不可否认,Linux的安全性相对Windows更胜一筹。

2.WAMP环境介绍

WAMP环境是Windows+Apache+MySQL+PHP相关环境的简称,即Windows操作系统、Apache网页服务器、MySQL数据库管理系统和PHP脚本。Windows给用户带来的最大便捷就是图形化操作,WAMP环境最大的优势在于它的图形化操作与安装。WAMP和LAMP的最大差异只在于其操作系统。

3.Apache服务器

Apache是一款开放源代码的Web服务器,其平台无关性使得Apache服务器可以在任何操作系统上运行,包括Windows。

4.MySQL数据库

MySQL数据库是一个开放源代码的小型关系数据库管理系统。MySQL是一个真正的多用户、多线程的SQL数据库服务器。

5.PHP脚本语言

PHP是在服务器端执行的脚本语言,尤其适用于Web开发并嵌入HTML中。

1.2.2 PHP集成开发工具
1.XAMPP

XAMPP是一个易于安装且包含MySQL、PHP和Perl的Apache发行版,只需根据提示操作,即可安装成功。

下载地址http://www.apachefriends.org

2.AppServ

AppServ将Apache、MySQL、PHP和phpMyAdmin等服务器软件工具安装配置完成后打包处理,同XAMPP一样,安装简单。

下载地址http://www.appserv.org

3.phpStudy

phpStudy是一个PHP调试环境的程序集成包,一次性安装,无需配置即可使用。

下载地址http://www.xp.cn

1.2.3 PHP代码编辑工具

选择PHP的代码编辑工具,应考虑以下4方面的因素。

1.语法的高亮显示。

2.格式排版功能。

3.代码提示功能。

4.界面设计功能。

以下介绍几款常用的代码编辑工具。

1.Notepad++

Notepad++是Windows操作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能。不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模式组。

下载地址http://notepad-plus.en.softonic.com/

2.ZendStudio

ZendStudio是目前公认的最强大的PHP开发工具。其具备功能强大的专业编辑工具和调试工具,包括:编辑、调试,配置PHP程序所需要的客户及服务器组件,支持PHP语法加亮显示,尤其是功能齐全的调试功能,能够帮程序员解决在开发中遇到的很多问题。

下载地址http://www.zend.com/store/products/zend-studio.php

3.NetBeans

NetBeans IDE,可以方便地在Windows、Mac、Linux和Solaris中运行。NetBeans包括开源的开发环境和应用平台。NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C/C++等开发语言。

官方网址https://netbeans.org

4.Visual Studio Code

VS Code是一个轻量级但功能强大的源代码编辑器,适用于Windows,MacOS和Linux。内置了对JavaScript,TypeScript和Node.js的支持,并为其他语言运行时提供了丰富的扩展生态系统。

官网地址https://code.visualstudio.com/

1.3 PHP入门

1.3.1 PHP标记符
1.标准标记

以“<?php”开始,以“?>”结束。

1. <?php

2. echo'Hello World!';

3. ?>

当文件内容是纯PHP代码时,可以省略结束标记,并且开始标记最好顶格书写,避免结果中出现不必要的空白字符。

2.简短标记

以"<?"开始,以“?>”结束。

1. <?

2. echo'Hello World!';

3. ?>

这种标记最为简单,输入字符最少,但是使用它,需要将php.ini配置文件中的short_open_tag选项设置为On,然后重启Apache服务器即可。

1.3.2 PHP注释

为了提高PHP的代码可读性,以便进行维护和代码修改,通常需要对重要语句添加注释说明。PHP支持以下3种注释风格。

1.单行注释

1. <?php

2. echo'Hello World!';//输出字符串

3. ?>

2.多行注释

1. <?php

2. /*

3. echo'Hello World!';

4. echo'Hi,PHP';

5. */

6. ?>

/* 和 */的内容为多行注释,多行注释以“/*”开始,以“*/”结束。多行注释可以嵌套单行注释,但不能再嵌套多行注释。

3.Shell风格的注释

1. <?php

2. echo'Hello World!';#输出字符串

3. ?>

“#”是一个Shell风格的单行注释。

1.3.3 PHP语句和语句块

PHP程序由一条或多条PHP语句构成,每条语句都以英文分号“;”结束。在书写PHP代码时,一条PHP语句一般占用一行。

如果多条PHP语句之间存在着某种联系,可以使用“{”和“}”将这些PHP语句包含起来形成一个语句块。

1.  <?php

2. {

3. echo'Hello World!';

4. echo'<br>';

5. echo'Hi,PHP';

6. }

7. ?>

语句块一般不会单独使用。只有和条件判断语句、循环语句、函数一起使用时,语句块才有意义。

1.3.4 PHP标识符

定义标识符的规则:

1.标识符只能由字母、数字和下划线组成

2.标识符可以由一个或多个字符组成,不能以数字字符开头

3.当标识符用作变量名时,区分大小写

4.当标识符由多个单词组成,建议使用下划线进行分隔

1.3.5 PHP关键字

关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。

注意:关键字不能作为常量、函数名或类名使用;关键字虽然可以作为变量名使用,但是容易混淆,不建议使用。

1.4 数据类型

PHP的数据类型可以分为3种,即标量数据类型、复合数据类型和特殊数据类型。

1.4.1  标量数据类型

标量数据类型是数据结构中最基本的单元,只能存储一个数据。PHP中的标量数据类型又可细分为4种类型。

类型 说明
布尔类型(Boolean) 这是最简单的类型。只有两个值,即真(True)或假(False)
字符串类型(String) 字符串就是连续的字符序列,可以是计算机所能表示的一切字符集合
整型(Integer) 整型数据类型只能包含整数,可以是正数或复数
浮点型(Float) 浮点型也叫浮点数,和整型不同的是它有小数位

1.布尔型

布尔型变量通常用于流程控制。

需要注意的是,在某些特殊故情况下,不仅True和False可以表示布尔值,其他类型的数据也可以表示布尔值。例如,可以用0表示False,用非0表示True。

2.字符串型

字符串是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用1字节。在PHP中,定义字符串主要使用单引号和双引号两种方式。

(1)单引号

定义字符串最简单的方法是用单引号“'”括进来。如果要在字符串中表示单引号,则需要用转义符“\”将单引号转义之后才能输出。如果在单引号之前或字符串结尾出现一个反斜线“\”,就要使用两个反斜线来表示。

(2)双引号

使用双引号“''”将字符串括起来同样可以定义字符串。如果要在定义的字符串中表示双引号,则同样需要使用转义符转义。

使用双引号和单引号的主要区别是,单引号定义的字符串出现的变量和转义序列不会被变量的值替代,而双引号中使用的变量名在显示时会显示变量的值。

3.整型

整型值可以使用十进制、十六进制、八进制或二进制表示,前面可以加上可选的符号(-或者+)

要使用八进制表达,数字前必须加上0;要使用十六进制表达,数字前必须加上0x;要使用二进制表达,数字钱币学家上0b。

4.浮点型

浮点类型也称为浮点数、双精度数或实数。

浮点数的数值只是一个近似值,所以要尽量避免在浮点型之间比较大小,因为最后的结果往往是不准确的。

1.4.2 复合数据类型

复合数据类型包括数组(array)和对象(object)两种

1.数组

数组时一组数据的集合,它把一系列数据组织起来,形成一个操作的整体。数组中可以包括很多数据,如标量数据、数组、对象、资源以及PHP中支持的其他语法结构等。

PHP中的数组实际上是一个有序映射。映射是一种把values(值)关联到keys(键名)的类型。数组通过函数array()定义,其值使用“key=>value”的方式设置,多个值通过逗号分隔。当然也可以不使用键名,默认是0、1、2、3·····。

2.对象

目前的编程语言用到的方法有面向过程和面向对象两种。在PHP中,用户可以自由使用这两种方法。

对象是一种高级的数据类型。任何事物都可以被看作一个对象。一个对象由部分属性值和方法构成,属性表明对象的一种状态,方法通常是用来实现功能的。

1.4.3 特殊数据类型

特殊数据类型包括资源(resource)和空值(null)两种。

1.资源

资源是一种特殊变量,保存到了外部资源的一个引用。资源是通过专门的函数来建立和使用的。资源类型变量有代开文件、数据库连接、图形画布区域等特殊句柄。

2.空值

空值,表示没有为该变量设置任何值。另外,空值不区分大小写,如null和NULL的效果是一样的。被赋予空值的情况有以下3种。

1.没有赋任何值

2.被赋值为null

3.被函数unset()处理过的变量

1.4.4 数据类型转换与检测
1.数据类型转换

有隐式类型转换和显式类型转换两种。

隐式类型转换是由编译器或解释器自动执行的,通常在表达式计算或赋值过程中发生。例如,在将一个小整数值赋给一个浮点变量时,编译器会自动将该整数转换为浮点数。这种转换通常是在不损失信息的情况下进行的,但有时也可能导致精度损失或意外的结果。

显式类型转换也叫做强制类型转换。它将一个变量或值转换成另一种类型,这种转换与C语言类型的转换是相同的,只需在要转换的变量前面加上用括号括起来的目标类型即可。

转换函数 转换类型
(boolean),(bool) 将其他数据类型强制转换成布尔型
(string) 将其他数据类型强制转换成字符串类型
(integer),(int) 将其他数据类型强制转换成整型
(float),(double),(real) 将其他数据类型强制转换成浮点型
(array) 将其他数据类型强制转换成数组
(object) 将其他数据类型强制转换成对象

在进行显示类型转换时,应该注意以下几个要点:

1.转换成布尔型。null、0和未赋值的变量或数组,会被转换成False,其他转换为True.

2.转换成整型。布尔型的False转换为0,True转换1;浮点型的小数部分会被舍去;字符串类型如果以数字开头,就截取到非数字位,否则输出0。

当字符串转换为整型或浮点型时,如果字符串是以数字开头的,则会先把数字部分转换为整型,再舍去后面的字符串;如果数字中含有小数点,则会取到小数点前一位。

3.强制转换成整型还可以使用函数intval(),转换成字符串还可以使用函数strval()。

2.数据类型检测
函数 检测类型
is_bool 检查变量是否为布尔类型
is_string 检查变量是否为字符串类型
is_float/is_double 检查变量是否为浮点类型
is_integer/is_int 检查变量是否为整型
is_null 检查变量是否为null
is_array 检查变量是否为数组类型
is_object 检查变量是否为一个对象类型
is_numeric 检查变量是否为数字或数字组成的字符串