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 | 检查变量是否为数字或数字组成的字符串 |