描述
开 本: 16开纸 张: 胶版纸包 装: 袋装是否套装: 否国际标准书号ISBN: 9787514360240丛书名: PHP全栈开发教程基础程序设计
编辑推荐
《中公版·PHP全栈开发教程基础程序设计》本书是由中公教育优就业研究院老师结合多年项目经验编写,面向PHP初学者特别推出的一本入门教材。本书基于面向过程思想,立足于PHP基础语法,并结合在PHP编程开发中的实际项目或模块进行重点细致讲解。本书适合初学者从*基础的编程知识开始全面地了解PHP编程语言的魅力,为成为一个专业的PHPer打下坚实的基础,适合作为通过PHP编程进行Web开发的入门级教材。
此外,本书全册采用双色印刷形式、图文并茂,视频讲解等增值服务是本书的一大特色。在本书的重要章节提供专业教师的讲解视频,扫描二维码即可实现在线学习,操作便捷高效。根据图书内容的难易程度,章节视频也有所侧重,有的课程是对图书内容的深层次延伸,有的课程是结合内容进行的案例操作。本书配套的增值视频使读者在掌握PHP编程语法的基础上,具备较强的实际操作能力。
内容简介
《中公版·PHP全栈开发教程基础程序设计》本书体系科学,条理清晰,语言通俗易懂,讲解深入浅出,实战性强。全书共分27章,第1~3章主要是初步认识PHP;第4~7章主要讲解了在不同操作系统下搭建PHP的开发环境以及一些常用的开发工具;第8~18章主要讲解了PHP的基础知识,包括PHP基本语法、PHP函数、数组、正则表达式、文件操作以及在PHP开发过程中的编码规范等基础内容;第19~27章围绕PHP在Web开发中的一些高级知识以及实际的项目开发展开讲解,包括PHP与Web页面交互、PHP操作MySQL、HTTP协议、PHP会话技术、高级文件操作以及强大的图像处理技术等。本书站在初学者的角度,以形象的比喻、丰富的图解、实用的案例、通俗易懂的语言详细讲解了PHP语言。
目 录
1.1何为PHP
1.2PHP优势
1.3PHP发展历史
1.3.1PersonalHomePageTools的诞生
1.3.2PHP/FI2.
1.3.3PHP
1.3.4PHP
1.3.5PHP
1.3.6PHP5.3~5.
1.3.7PHP
1.4PHP的应用领域
2.1基础重要
2.2温故而知新
2.3精神可贵
3.1手册至关重要
3.2得心应手的开发工具
3.3网站资源不可忽视
3.4图书资源必不可少
4.1Windows环境下使用XAMPP集成包
4.2XAMPP安装步骤
5.1Nginx安装前准备工作
5.1.1安装gcc环境
5.1.2安装PCREpcre-devel
5.1.3安装zlib
5.1.4安装OpenSSL
5.2安装Nginx
5.2.1官网下载Nginx安装包
5.2.2wget下载安装包
5.2.3解压安装包
5.2.4进入解压目录
5.2.5配置Nginx
5.2.6编译安装Nginx
5.3Nginx常用操作
5.3.1启动Nginx
5.3.2终止Nginx进程
5.3.3重启Nginx进程
5.3.4设置Nginx开机自启动
5.4安装MySQL
5.4.1官网下载MySQL安装包
5.4.2安装包上传服务器并进行MySQL配置操作
5.5安装PHP
5.5.1官网下载PHP安装包
5.5.2PHP安装前准备工作
5.5.3PHP详细安装步骤
5.5.4整合PHP与Nginx
6.1SublimeText介绍
6.2SublimeText功能特性
6.3SublimeText优势
6.4SublimeText快捷键介绍
6.5SublimeText插件管理
6.5.1安装PackageControl插件管理包
6.5.2使用PackageControl安装其他插件
6.6推荐安装插件
7.1PHP基础语法
7.2个PHP脚本
7.3PHP中的注释
7.4PHP中大小写敏感
8.1变量的定义与创建
8.2变量的命名规则
8.3变量类型
8.3.1PHP中存在八种变量类型
8.3.2变量类型检测
8.3.3判断变量是否属于某种变量类型
8.3.4变量类型转换
8.4变量检测
8.4.1检测变量是否存在
8.4.2检测变量是否为空
8.5调试打印变量
8.5.1使用echo语句
8.5.2使用print_r()函数打印调试变量
8.5.3使用var_dump()打印调试变量
8.5.4其他打印输出变量
8.6变量赋值
8.7变量作用域
8.7.1定义与类型
8.7.2local局部变量与global全局变量作用域
8.7.3global关键词
8.7.4static关键词
8.8变量销毁
8.9动态变量名
9.1常量的特点
9.2常量的定义
9.3常量的命名
9.4检测常量是否存在
9.5常量的作用域
9.6动态常量名
9.7魔术常量
9.8开发常用效果
10.1算术运算符
10.2赋值运算符
10.3字符串运算符
10.3.1字符串运算符种类
10.3.2点拼接(.)与加法运算符( )比较
10.3.3点拼接(.)与逗号运算符(,)比较
10.4递增/递减运算符
10.5位运算符
10.6比较运算符
10.7逻辑运算符
10.8三元运算符
10.9数组运算符
10.10错误屏蔽运算符
10.11运算符优先级
10.12逻辑运算符的短路特性
10.12.1逻辑&&的短路特性
10.12.2逻辑||的短路特性
10.12.3项目实战
11.1条件控制结构
11.1.1if语句
11.1.2if-else语句
11.1.3elseif语句
11.1.4switch-case语句
11.2循环控制结构
11.2.1while语句的循环控制
11.2.2do-while语句的循环控制
11.2.3for语句的循环控制
11.2.4foreach语句的循环遍历
11.3break与continue
11.3.1break关键字用法详解
11.3.2continue关键字用法详解
11.3.3break与continue区别
11.4编程思想训练
11.4.1打印九九乘法表
11.4.2过桥问题
11.4.3百钱百鸡问题
12.1函数的定义与调用
12.1.1函数的定义
12.1.2函数命名规范
12.1.3函数的调用
12.2函数的执行与返回
12.2.1函数执行流程
12.2.2函数返回流程
12.2.3函数返回值
12.3函数传参方式
12.3.1按值传递方式
12.3.2按引用传递方式
12.3.3默认参数与可选参数
12.4函数的作用域
12.5动态调用函数
12.6日期时间相关函数
12.6.1时间戳函数
12.6.2时间戳格式化函数
12.6.3日期解析函数
13.1字符串类型
13.2字符串定义方式
13.2.1单引号定义字符串
13.2.2双引号定义字符串
13.2.3Heredoc结构定义大段字符串
13.2.4Nowdoc结构定义大段字符串
13.3单双引号区别及对比
13.3.1转义对比
13.3.2变量解析对比
13.3.3速度对比
13.4字符串连接符操作
13.5字符串常用操作函数
13.5.1字符串长度函数
13.5.2字符串位置函数
13.5.3字符串替换函数
13.5.4截取字符串函数
13.5.5字符串分割函数
13.5.6字符串连接函数
13.5.7字符串空白处理函数
13.5.8字符串反转函数
14.1数组的定义
14.2数组的声明与创建
14.2.1使用array()函数创建索引数组
14.2.2使用array()函数创建关联数组
14.2.3为数组元素赋值创建数组
14.2.4使用[]语法创建数组
14.3数组的类型
14.3.1索引数组
14.3.2关联数组
14.4数组的输出
14.5数组的构造
14.5.1一维数组的构造
14.5.2二维数组的构造
14.5.3多维数组的构造
14.6操作数组单元
14.6.1精确获取数组中某一单元的值
14.6.2增加数组单元
14.6.3更新数组单元
14.6.4删除数组单元
14.7遍历数组单元
14.7.1遍历索引数组
14.7.2遍历关联数组
14.7.3遍历多维数组
14.8数组指针操作
14.8.1获取当前指针指向的单元值
14.8.2获取当前指针指向的单元键名
14.8.3移动指针指向下一数组单元并输出
14.8.4移动指针指向上一数组单元并输出
14.8.5移动指针指向数组后单元并输出
14.8.6移动指针指向数组首个单元并输出
14.8.7获取当前元素的键值对并向前移动指针
14.8.8数组中的值赋值给一组变量
14.8.9数组指针操作案例汇总
14.9数组常用函数
14.9.1计算数组中的单元数目
14.9.2检查给定的键名或者索引是否存在于数组中
14.9.3检查数组中是否存在某个值
14.9.4向数组尾部添加元素
14.9.5删除数组中后一个元素
14.9.6删除数组中个元素
14.9.7向数组添加元素
14.9.8删除并替换数组中指定元素
14.9.9根据条件在数组中获取一段值并返回
14.9.10数组搜索某个键值,返回对应的键名
14.9.11将一个或多个数组合并成一个数组
14.10超全局变量数组
14.10.1$GLOBALS引用全局作用域中可用的变量
14.10.2$_GET超全局变量收集表单数据
14.10.3$_POST超全局变量收集表单数据
14.10.4$_REQUEST超全局变量收集表单数据
14.10.5$_ENV获取服务器端环境变量
14.10.6$_SERVER获取服务器和执行环境的信息
14.11编程思想训练
14.11.1小羊繁殖问题
14.11.2猴子选大王问题
15.1认识正则表达式
15.1.1正则表达式的定义与简介
15.1.2PHP与正则表达式
15.2正则表达式基本语法规范
15.2.1普通字符
15.2.2不可打印字符
15.2.3特殊字符
15.2.4限定符
15.2.5贪婪模式与非贪婪模式
15.2.6定位符
15.2.7选择
15.2.8反向引用
15.3元字符
15.4运算符优先级
15.5匹配规范
15.5.1模式匹配及模式修饰符
15.5.2字符簇
15.5.3重复出现
15.6PCRE兼容正则表达式函数
15.6.1preg_grep()函数
15.6.2preg_match()函数
15.6.3preg_match_all()函数
15.6.4preg_quote()函数
15.6.5preg_replace()函数
15.6.6preg_split()函数
15.7项目中常用的正则表达式
15.7.1校验数字的表达式
15.7.2校验字符的表达式
15.7.3特殊需求的表达式
16.1进制
16.1.1常见进制的介绍
16.1.2二进制与其他进制的转换
16.1.3进制运算
16.2位运算
16.2.1原码、反码及补码介绍
16.2.2位运算操作
16.3位移运算操作
16.4项目实战——利用位运算实现权限控制
16.4.1定义用户权限
16.4.2判断用户是否具有某个权限
16.4.3取消用户权限
16.5位运算的计算缺陷
17.1文件加载的路径问题
17.1.1相对路径
17.1.2路径
17.1.3根目录形式
17.2文件包含
17.2.1使用include类型的文件包含
17.2.2使用include_once类型的文件包含
17.2.3使用require类型的文件包含
17.2.4使用require_once()类型的文件包含
17.2.5四种文件包含方式的区别
17.2.6包含文件中return的作用
17.2.7文件包含的应用
17.3文件打开
17.3.1readfile()函数打开文件
17.3.2fopen()函数打开文件
17.4文件读取
17.4.1读取全部文件
17.4.2读取单行文件
17.4.3检测文件指针是否到文件结尾
17.4.4读取单个字符
17.5文件创建与修改
17.5.1创建文件
17.5.2写入文件内容
17.5.3替换文件内容
17.
1.2PHP优势
1.3PHP发展历史
1.3.1PersonalHomePageTools的诞生
1.3.2PHP/FI2.
1.3.3PHP
1.3.4PHP
1.3.5PHP
1.3.6PHP5.3~5.
1.3.7PHP
1.4PHP的应用领域
2.1基础重要
2.2温故而知新
2.3精神可贵
3.1手册至关重要
3.2得心应手的开发工具
3.3网站资源不可忽视
3.4图书资源必不可少
4.1Windows环境下使用XAMPP集成包
4.2XAMPP安装步骤
5.1Nginx安装前准备工作
5.1.1安装gcc环境
5.1.2安装PCREpcre-devel
5.1.3安装zlib
5.1.4安装OpenSSL
5.2安装Nginx
5.2.1官网下载Nginx安装包
5.2.2wget下载安装包
5.2.3解压安装包
5.2.4进入解压目录
5.2.5配置Nginx
5.2.6编译安装Nginx
5.3Nginx常用操作
5.3.1启动Nginx
5.3.2终止Nginx进程
5.3.3重启Nginx进程
5.3.4设置Nginx开机自启动
5.4安装MySQL
5.4.1官网下载MySQL安装包
5.4.2安装包上传服务器并进行MySQL配置操作
5.5安装PHP
5.5.1官网下载PHP安装包
5.5.2PHP安装前准备工作
5.5.3PHP详细安装步骤
5.5.4整合PHP与Nginx
6.1SublimeText介绍
6.2SublimeText功能特性
6.3SublimeText优势
6.4SublimeText快捷键介绍
6.5SublimeText插件管理
6.5.1安装PackageControl插件管理包
6.5.2使用PackageControl安装其他插件
6.6推荐安装插件
7.1PHP基础语法
7.2个PHP脚本
7.3PHP中的注释
7.4PHP中大小写敏感
8.1变量的定义与创建
8.2变量的命名规则
8.3变量类型
8.3.1PHP中存在八种变量类型
8.3.2变量类型检测
8.3.3判断变量是否属于某种变量类型
8.3.4变量类型转换
8.4变量检测
8.4.1检测变量是否存在
8.4.2检测变量是否为空
8.5调试打印变量
8.5.1使用echo语句
8.5.2使用print_r()函数打印调试变量
8.5.3使用var_dump()打印调试变量
8.5.4其他打印输出变量
8.6变量赋值
8.7变量作用域
8.7.1定义与类型
8.7.2local局部变量与global全局变量作用域
8.7.3global关键词
8.7.4static关键词
8.8变量销毁
8.9动态变量名
9.1常量的特点
9.2常量的定义
9.3常量的命名
9.4检测常量是否存在
9.5常量的作用域
9.6动态常量名
9.7魔术常量
9.8开发常用效果
10.1算术运算符
10.2赋值运算符
10.3字符串运算符
10.3.1字符串运算符种类
10.3.2点拼接(.)与加法运算符( )比较
10.3.3点拼接(.)与逗号运算符(,)比较
10.4递增/递减运算符
10.5位运算符
10.6比较运算符
10.7逻辑运算符
10.8三元运算符
10.9数组运算符
10.10错误屏蔽运算符
10.11运算符优先级
10.12逻辑运算符的短路特性
10.12.1逻辑&&的短路特性
10.12.2逻辑||的短路特性
10.12.3项目实战
11.1条件控制结构
11.1.1if语句
11.1.2if-else语句
11.1.3elseif语句
11.1.4switch-case语句
11.2循环控制结构
11.2.1while语句的循环控制
11.2.2do-while语句的循环控制
11.2.3for语句的循环控制
11.2.4foreach语句的循环遍历
11.3break与continue
11.3.1break关键字用法详解
11.3.2continue关键字用法详解
11.3.3break与continue区别
11.4编程思想训练
11.4.1打印九九乘法表
11.4.2过桥问题
11.4.3百钱百鸡问题
12.1函数的定义与调用
12.1.1函数的定义
12.1.2函数命名规范
12.1.3函数的调用
12.2函数的执行与返回
12.2.1函数执行流程
12.2.2函数返回流程
12.2.3函数返回值
12.3函数传参方式
12.3.1按值传递方式
12.3.2按引用传递方式
12.3.3默认参数与可选参数
12.4函数的作用域
12.5动态调用函数
12.6日期时间相关函数
12.6.1时间戳函数
12.6.2时间戳格式化函数
12.6.3日期解析函数
13.1字符串类型
13.2字符串定义方式
13.2.1单引号定义字符串
13.2.2双引号定义字符串
13.2.3Heredoc结构定义大段字符串
13.2.4Nowdoc结构定义大段字符串
13.3单双引号区别及对比
13.3.1转义对比
13.3.2变量解析对比
13.3.3速度对比
13.4字符串连接符操作
13.5字符串常用操作函数
13.5.1字符串长度函数
13.5.2字符串位置函数
13.5.3字符串替换函数
13.5.4截取字符串函数
13.5.5字符串分割函数
13.5.6字符串连接函数
13.5.7字符串空白处理函数
13.5.8字符串反转函数
14.1数组的定义
14.2数组的声明与创建
14.2.1使用array()函数创建索引数组
14.2.2使用array()函数创建关联数组
14.2.3为数组元素赋值创建数组
14.2.4使用[]语法创建数组
14.3数组的类型
14.3.1索引数组
14.3.2关联数组
14.4数组的输出
14.5数组的构造
14.5.1一维数组的构造
14.5.2二维数组的构造
14.5.3多维数组的构造
14.6操作数组单元
14.6.1精确获取数组中某一单元的值
14.6.2增加数组单元
14.6.3更新数组单元
14.6.4删除数组单元
14.7遍历数组单元
14.7.1遍历索引数组
14.7.2遍历关联数组
14.7.3遍历多维数组
14.8数组指针操作
14.8.1获取当前指针指向的单元值
14.8.2获取当前指针指向的单元键名
14.8.3移动指针指向下一数组单元并输出
14.8.4移动指针指向上一数组单元并输出
14.8.5移动指针指向数组后单元并输出
14.8.6移动指针指向数组首个单元并输出
14.8.7获取当前元素的键值对并向前移动指针
14.8.8数组中的值赋值给一组变量
14.8.9数组指针操作案例汇总
14.9数组常用函数
14.9.1计算数组中的单元数目
14.9.2检查给定的键名或者索引是否存在于数组中
14.9.3检查数组中是否存在某个值
14.9.4向数组尾部添加元素
14.9.5删除数组中后一个元素
14.9.6删除数组中个元素
14.9.7向数组添加元素
14.9.8删除并替换数组中指定元素
14.9.9根据条件在数组中获取一段值并返回
14.9.10数组搜索某个键值,返回对应的键名
14.9.11将一个或多个数组合并成一个数组
14.10超全局变量数组
14.10.1$GLOBALS引用全局作用域中可用的变量
14.10.2$_GET超全局变量收集表单数据
14.10.3$_POST超全局变量收集表单数据
14.10.4$_REQUEST超全局变量收集表单数据
14.10.5$_ENV获取服务器端环境变量
14.10.6$_SERVER获取服务器和执行环境的信息
14.11编程思想训练
14.11.1小羊繁殖问题
14.11.2猴子选大王问题
15.1认识正则表达式
15.1.1正则表达式的定义与简介
15.1.2PHP与正则表达式
15.2正则表达式基本语法规范
15.2.1普通字符
15.2.2不可打印字符
15.2.3特殊字符
15.2.4限定符
15.2.5贪婪模式与非贪婪模式
15.2.6定位符
15.2.7选择
15.2.8反向引用
15.3元字符
15.4运算符优先级
15.5匹配规范
15.5.1模式匹配及模式修饰符
15.5.2字符簇
15.5.3重复出现
15.6PCRE兼容正则表达式函数
15.6.1preg_grep()函数
15.6.2preg_match()函数
15.6.3preg_match_all()函数
15.6.4preg_quote()函数
15.6.5preg_replace()函数
15.6.6preg_split()函数
15.7项目中常用的正则表达式
15.7.1校验数字的表达式
15.7.2校验字符的表达式
15.7.3特殊需求的表达式
16.1进制
16.1.1常见进制的介绍
16.1.2二进制与其他进制的转换
16.1.3进制运算
16.2位运算
16.2.1原码、反码及补码介绍
16.2.2位运算操作
16.3位移运算操作
16.4项目实战——利用位运算实现权限控制
16.4.1定义用户权限
16.4.2判断用户是否具有某个权限
16.4.3取消用户权限
16.5位运算的计算缺陷
17.1文件加载的路径问题
17.1.1相对路径
17.1.2路径
17.1.3根目录形式
17.2文件包含
17.2.1使用include类型的文件包含
17.2.2使用include_once类型的文件包含
17.2.3使用require类型的文件包含
17.2.4使用require_once()类型的文件包含
17.2.5四种文件包含方式的区别
17.2.6包含文件中return的作用
17.2.7文件包含的应用
17.3文件打开
17.3.1readfile()函数打开文件
17.3.2fopen()函数打开文件
17.4文件读取
17.4.1读取全部文件
17.4.2读取单行文件
17.4.3检测文件指针是否到文件结尾
17.4.4读取单个字符
17.5文件创建与修改
17.5.1创建文件
17.5.2写入文件内容
17.5.3替换文件内容
17.
在线试读
章PHP简介
1
章PHP简介
章PHP简介
章
PHP简介
1.1何为PHP
PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。PHP语法吸收了C语言、Java和Perl的特点,并混合自己在Web开发中独特的语法,因此它可以比CGI或者Perl更快速地执行动态网页。此外,PHP与其他的编程语言相比,它设计的动态页面是将脚本程序嵌入到HTML标记文档中去执行,因此它的执行效率比完全生成HTML标记要高出许多。
1.2PHP优势
(1)开源。PHP所有的源代码在GitHub上都可以得到。可以说PHP的开源性是它从问世到现在经久不衰的特性之一。
(2)便捷性。在Web开发中,使用PHP开发程序快、成本低、运行效率高。而且,由于PHP可以被嵌入HTML语言,因此它相对于其他语言而言实用性更强,学习成本也更低,非常适用于初学者。
(3)可移植性强。由于PHP是运行在服务器端的动态脚本语言,它可以运行在UNIX、Linux、Windows、MacOS、Android等各个平台之间。
(4)资源占用率低。正是由于PHP在运行中相对于其他语言而言占用的系统资源比较低,因此它的运行效率才会较其他语言要高出许多。
(5)图像处理能力强。由于PHP本身可以与GD2图像处理库完美结合,因此使用PHP进行动态处理图像的能力变得异常强大。
1.3PHP发展历史
1.3.1PersonalHomePageTools的诞生
PHP由RasmusLerdorf在1994年创建。1994年,RasmusLerdorf为了在自己的网站上增加一个小巧而实用的访客追踪系统,使用Perl语言封装了一个简单的工具。但是由于使用效果不理想,他又使用C语言重新编写了这个工具。再后来,更多的人注意到这款工具,Rasmus又新增了更多的功能,并发布了一完整的版本,命名PersonalHomePageTools。这就是PHP的雏形。
1.3.2PHP/FI2.0
1996年Rasmus在PersonalHomePageTools的基础上,又一次完善了它的功能,发布了一个基本完善的PHP程序包,并命名为PHP/FI2.0。这款程序包的特点是它不仅可以访问数据库,而且可以嵌入HTML页面。此时,越来越多的程序员注意到了这款优秀的程序包,其中就包括了ZeevSuraski和AndiGutmans,这两位PHP3的创作者。
1.3.3PHP3
由于不满足于PHP/FI在大型项目中的表现,Zeev和Andi针对PHP/FI2.0做了重大的改进。1998年末,PHP3个官方正式版本发行。这款产品具有更好的执行效果以及更清晰的体系架构,它可以给用户提供数据库、协议和API的基础结构。此外,这款产品及其强大的扩展性吸引了大量的开发人员加入并提交新的模块。这个全新的语言此时不再局限于个人主页工具,它伴随着一个新的名称发布,被命名为“PHP”,全称是PHP:HypertextPreprocessor。
之后,Zeev和Andi为了增强程序运行性能和PHP自身代码的模块性,而投入到了全新的PHP的开发之中。
1.3.4PHP4
2000年5月,以Zeev和Andi的名字命名的“Zend”引擎随着新版PHP4.0发布。搭载Zend引擎的PHP4.0在性能上较PHP3有着将近10倍的提升。Zend引擎提供的脚本优化器,可以把源程序转为二进制编译代码,在提高性能的同时,也保护了程序源码不被暴露。此外,在PHP4中增加了对各种Web服务器的支持,并增加了一些新的语言特性,如完整的会话机制、丰富的数组操作函数,以及对输出缓存的支持等等。此外,PHP4也增加了对类与对象的支持,尽管PHP4在这方面并不完善,但依然大大提高了对面向对象程序设计的支持。
1.3.5PHP5
2004年7月,搭载第二代Zend引擎的PHP5正式版本的发布,标志着一个全新的PHP时代的到来。此版本的特点是引入了面向对象的全部机制,并且引入了对全新的PECL模块的支持。此外,PHP5也引入了类型提示和异常处理机制,在此机制的作用下能更有效地处理和避免错误的发生。在PHP4.0版本下广为诟病的对象集成等方面的问题也在这个版本中得到了解决。
1.3.6PHP5.3~5.6
2007年,PHP5.3版本发布,在此版本下增加了对命名空间的支持。而之后的版本中,如PHP5.4、PHP5.5、PHP5.6又相继增加了匿名函数、闭包、Traits、短数组、生成器语法、函数自动变长参数等新特性,使得PHP的语法变得越来越灵活。而且在新的版本中还持续对性能做了优化,此阶段下PHP的性能得到了大幅度的提升。
1.3.7PHP7
2015年7月,搭载了重新设计的PHP“Zend”引擎的PHP7.0版本发布。此版本加入了AST自动类型分析、JIT即时编译等静态语言特性,使得PHP语言的性能得到更大幅度的提升,基本解决了动态语言运行性能差的问题。未来,PHP既有动态语言的开发效率,又具有了静态语言般的运行性能,可以说PHP的前景是非常美好的。
1.4PHP的应用领域
在互联网高速发展的今天,B/S架构渐渐成为主流。由于PHP的开源特性并且在搭建网站上的便捷性与低成本性,因此它的应用范围相当广泛,主要包括:中小型企业网站的Web开发,中大型企业级应用业务开发,Web办公管理系统,电子商务平台的搭建,微信公众平台开发,客户端界面及APP后台开发等。
随着B/S架构的发展,虽然C#、Java、VB等都可以进行Web开发,但是由于PHP与Web应用的独特结合,因此它吸引着越来越多的Web开发人员。由于PHP可应用的范围广、使用人员多、入门上手容易,因此其发展速度快于之前出现过的任意一种计算机编程语言。
PHP的应用领域如此广泛,留给开发人员的活动空间也是巨大的,接下来就开启PHP编程之旅吧。
2.1基础重要
(1)PHP与网站开发可以说是完美的组合,使用PHP作为网站开发语言可以起到事半功倍的效果。正是因为PHP充分结合的了前后端的开发,因此在学习PHP的时候熟练掌握HTML、CSS、JavaScript等前端开发语言网页变得至关重要。这也是每个新手PHP程序员都要了解并掌握的。此阶段完成之后,程序员可以自行设计制作一个完整的前端网页。
(2)学好PHP基本的就是理解动态编程语言的特点以及它们的运行机制。此外要熟练掌握PHP语言的基本语法,只有掌握了PHP的基本语法才能熟悉PHP语言。此处是熟悉,要想完全掌握PHP这门语言,仅熟悉还是远远不够的。
(3)由于PHP动态脚本语言的特点,它充分结合了前后端的开发,因此将PHP与前端语言充分的结合起来变得很重要。在此阶段下,程序员可以独立编写并实现一个简单的动态页面。
(4)仅仅是学好前后端的开发还是远远不够的,此阶段下只能实现一个动态页面。但是如果涉及数据的存储方面就无能为力了,因为不可能总是用记事本存储数据。现在几乎所有网站的数据都是保存在数据库中,而PHP与MySQL数据库是完美的组合。因此掌握好MySQL数据库的使用,变得尤为关键。在此阶段下,需要熟悉MySQL的基本操作,熟练掌握PHP操作MySQL数据库,直到后可以设计出一个使用MySQL存储数据的动态网站页面。
(5)掌握了上述内容,只能算是对PHP入了门,如果想要更熟练地掌握PHP,还需要继续努力。PHP拥有非常强大的函数库,掌握PHP之后就要熟练运用PHP的函数库。利用PHP函数库可以在网站开发中起到事半功倍的效果。
(6)掌握了上述技能,算是初步掌握了PHP进行面向过程式的开发。但是在实际的项目开发中,面向过程式开发却有许多的弊病,比如系统的可移植性差等。因此,此阶段下理解并掌握使用面向对象编程的思想进行项目开发显得至关重要。
(7)此外,初步掌握基本的MySQL优化以及前端模板的使用,理解MVC架构模式等,在实际的项目开发中也会起到很大的作用。
2.2温故而知新
达到上节叙述的几点,说明已经基本掌握了PHP编程的基础。此时重要的并不是学习新的技术知识,而且查漏补缺、温故知新,重新梳理之前学习的基础知识,在项目开发中用到哪块知识,就可以立刻回忆起此部分的框架,做到信手拈来。
(1)深入理解HTML以及HTML5、CSS3、以及JavaScript等前端编程语言,在掌握基本知识的基础上进行查漏补缺。
(2)深入理解并掌握MySQL的运行机制及存储过程,熟练掌握每条SQL语句的使用,掌握MySQL中定义的各种数据结构。
(3)掌握PHP基本的函数库,以及常用的函数方法(大约有180多个)。PHP绝大部分功能的实现都需要使用这些方法。此外,还要深入理解每个函数的具体功能及数据结构,做到可以能运用多个函数方法实现一项复杂的功能。
(4)在掌握PHP函数库的同时,也要熟练运用JavaScript的函数库,因为这两种语言在语法格式上基本是相通的。此外,要想深入学习JavaScript语言,掌握一个JS框架也是至关重要的。
(5)在掌握JavaScript的用时,深入学习jQuery和Ajax技术也是必不可少的。
(6)深入学习PHP的模板引擎,如Smarty或Blade模板引擎可以做到前后端的分离,降低程序模块间的耦合性。此外,掌握PHP的面向对象机制,试着自己封装一个数据库类,了解MVC架构模式,掌握几个常用的PHP开源框架,例如thinkPHP、laravel等。
2.3精神可贵
熟练掌握以上这些的技术,基本能够达到中高等水平,已经可以开发一个普通的网站了。但是想要成为精通PHP的大牛,还是有不少差距的。这就需要在平时的项目开发中积累经验,团队成员之间也要加强交流合作。
除此之外,重要的一点就是与时俱进的学习态度。知识决定一切,技术决定一切,21世纪是个知识爆炸的时代,IT互联网也是更新换代快的集体。在IT互联网界,一天不学习就有可能被世界淘汰。因此,学习,至关重要!
3.1手册至关重要
学习PHP配备一个开发手册至关重要,一部好的开发手册就像一部新华字典,字典在刚开始入门识字的时候起的作用不言而喻。PHP参考手册对PHP的函数进行了详细描述和讲解说明,并且还给出了一些具体的实例,方便读者对内容知识的加深理解。而且还对PHP的安装配置、语言参考、安全和特点等内容进行了详细介绍,非常适合刚刚学习PHP的小白使用。
在http://www.php.net/docs.php网站上提供有PHP的各种语言、格式和版本的参考,让读者可以进行在线阅读及下载。
PHP参考手册不但对PHP函数进行详细的解释说明,而且还提供了快速查找的方法,让用户可以快速精确定位到指定函数。
3.2得心应手的开发工具
集成开发环境是一种集成
1
章PHP简介
章PHP简介
章
PHP简介
1.1何为PHP
PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。PHP语法吸收了C语言、Java和Perl的特点,并混合自己在Web开发中独特的语法,因此它可以比CGI或者Perl更快速地执行动态网页。此外,PHP与其他的编程语言相比,它设计的动态页面是将脚本程序嵌入到HTML标记文档中去执行,因此它的执行效率比完全生成HTML标记要高出许多。
1.2PHP优势
(1)开源。PHP所有的源代码在GitHub上都可以得到。可以说PHP的开源性是它从问世到现在经久不衰的特性之一。
(2)便捷性。在Web开发中,使用PHP开发程序快、成本低、运行效率高。而且,由于PHP可以被嵌入HTML语言,因此它相对于其他语言而言实用性更强,学习成本也更低,非常适用于初学者。
(3)可移植性强。由于PHP是运行在服务器端的动态脚本语言,它可以运行在UNIX、Linux、Windows、MacOS、Android等各个平台之间。
(4)资源占用率低。正是由于PHP在运行中相对于其他语言而言占用的系统资源比较低,因此它的运行效率才会较其他语言要高出许多。
(5)图像处理能力强。由于PHP本身可以与GD2图像处理库完美结合,因此使用PHP进行动态处理图像的能力变得异常强大。
1.3PHP发展历史
1.3.1PersonalHomePageTools的诞生
PHP由RasmusLerdorf在1994年创建。1994年,RasmusLerdorf为了在自己的网站上增加一个小巧而实用的访客追踪系统,使用Perl语言封装了一个简单的工具。但是由于使用效果不理想,他又使用C语言重新编写了这个工具。再后来,更多的人注意到这款工具,Rasmus又新增了更多的功能,并发布了一完整的版本,命名PersonalHomePageTools。这就是PHP的雏形。
1.3.2PHP/FI2.0
1996年Rasmus在PersonalHomePageTools的基础上,又一次完善了它的功能,发布了一个基本完善的PHP程序包,并命名为PHP/FI2.0。这款程序包的特点是它不仅可以访问数据库,而且可以嵌入HTML页面。此时,越来越多的程序员注意到了这款优秀的程序包,其中就包括了ZeevSuraski和AndiGutmans,这两位PHP3的创作者。
1.3.3PHP3
由于不满足于PHP/FI在大型项目中的表现,Zeev和Andi针对PHP/FI2.0做了重大的改进。1998年末,PHP3个官方正式版本发行。这款产品具有更好的执行效果以及更清晰的体系架构,它可以给用户提供数据库、协议和API的基础结构。此外,这款产品及其强大的扩展性吸引了大量的开发人员加入并提交新的模块。这个全新的语言此时不再局限于个人主页工具,它伴随着一个新的名称发布,被命名为“PHP”,全称是PHP:HypertextPreprocessor。
之后,Zeev和Andi为了增强程序运行性能和PHP自身代码的模块性,而投入到了全新的PHP的开发之中。
1.3.4PHP4
2000年5月,以Zeev和Andi的名字命名的“Zend”引擎随着新版PHP4.0发布。搭载Zend引擎的PHP4.0在性能上较PHP3有着将近10倍的提升。Zend引擎提供的脚本优化器,可以把源程序转为二进制编译代码,在提高性能的同时,也保护了程序源码不被暴露。此外,在PHP4中增加了对各种Web服务器的支持,并增加了一些新的语言特性,如完整的会话机制、丰富的数组操作函数,以及对输出缓存的支持等等。此外,PHP4也增加了对类与对象的支持,尽管PHP4在这方面并不完善,但依然大大提高了对面向对象程序设计的支持。
1.3.5PHP5
2004年7月,搭载第二代Zend引擎的PHP5正式版本的发布,标志着一个全新的PHP时代的到来。此版本的特点是引入了面向对象的全部机制,并且引入了对全新的PECL模块的支持。此外,PHP5也引入了类型提示和异常处理机制,在此机制的作用下能更有效地处理和避免错误的发生。在PHP4.0版本下广为诟病的对象集成等方面的问题也在这个版本中得到了解决。
1.3.6PHP5.3~5.6
2007年,PHP5.3版本发布,在此版本下增加了对命名空间的支持。而之后的版本中,如PHP5.4、PHP5.5、PHP5.6又相继增加了匿名函数、闭包、Traits、短数组、生成器语法、函数自动变长参数等新特性,使得PHP的语法变得越来越灵活。而且在新的版本中还持续对性能做了优化,此阶段下PHP的性能得到了大幅度的提升。
1.3.7PHP7
2015年7月,搭载了重新设计的PHP“Zend”引擎的PHP7.0版本发布。此版本加入了AST自动类型分析、JIT即时编译等静态语言特性,使得PHP语言的性能得到更大幅度的提升,基本解决了动态语言运行性能差的问题。未来,PHP既有动态语言的开发效率,又具有了静态语言般的运行性能,可以说PHP的前景是非常美好的。
1.4PHP的应用领域
在互联网高速发展的今天,B/S架构渐渐成为主流。由于PHP的开源特性并且在搭建网站上的便捷性与低成本性,因此它的应用范围相当广泛,主要包括:中小型企业网站的Web开发,中大型企业级应用业务开发,Web办公管理系统,电子商务平台的搭建,微信公众平台开发,客户端界面及APP后台开发等。
随着B/S架构的发展,虽然C#、Java、VB等都可以进行Web开发,但是由于PHP与Web应用的独特结合,因此它吸引着越来越多的Web开发人员。由于PHP可应用的范围广、使用人员多、入门上手容易,因此其发展速度快于之前出现过的任意一种计算机编程语言。
PHP的应用领域如此广泛,留给开发人员的活动空间也是巨大的,接下来就开启PHP编程之旅吧。
2.1基础重要
(1)PHP与网站开发可以说是完美的组合,使用PHP作为网站开发语言可以起到事半功倍的效果。正是因为PHP充分结合的了前后端的开发,因此在学习PHP的时候熟练掌握HTML、CSS、JavaScript等前端开发语言网页变得至关重要。这也是每个新手PHP程序员都要了解并掌握的。此阶段完成之后,程序员可以自行设计制作一个完整的前端网页。
(2)学好PHP基本的就是理解动态编程语言的特点以及它们的运行机制。此外要熟练掌握PHP语言的基本语法,只有掌握了PHP的基本语法才能熟悉PHP语言。此处是熟悉,要想完全掌握PHP这门语言,仅熟悉还是远远不够的。
(3)由于PHP动态脚本语言的特点,它充分结合了前后端的开发,因此将PHP与前端语言充分的结合起来变得很重要。在此阶段下,程序员可以独立编写并实现一个简单的动态页面。
(4)仅仅是学好前后端的开发还是远远不够的,此阶段下只能实现一个动态页面。但是如果涉及数据的存储方面就无能为力了,因为不可能总是用记事本存储数据。现在几乎所有网站的数据都是保存在数据库中,而PHP与MySQL数据库是完美的组合。因此掌握好MySQL数据库的使用,变得尤为关键。在此阶段下,需要熟悉MySQL的基本操作,熟练掌握PHP操作MySQL数据库,直到后可以设计出一个使用MySQL存储数据的动态网站页面。
(5)掌握了上述内容,只能算是对PHP入了门,如果想要更熟练地掌握PHP,还需要继续努力。PHP拥有非常强大的函数库,掌握PHP之后就要熟练运用PHP的函数库。利用PHP函数库可以在网站开发中起到事半功倍的效果。
(6)掌握了上述技能,算是初步掌握了PHP进行面向过程式的开发。但是在实际的项目开发中,面向过程式开发却有许多的弊病,比如系统的可移植性差等。因此,此阶段下理解并掌握使用面向对象编程的思想进行项目开发显得至关重要。
(7)此外,初步掌握基本的MySQL优化以及前端模板的使用,理解MVC架构模式等,在实际的项目开发中也会起到很大的作用。
2.2温故而知新
达到上节叙述的几点,说明已经基本掌握了PHP编程的基础。此时重要的并不是学习新的技术知识,而且查漏补缺、温故知新,重新梳理之前学习的基础知识,在项目开发中用到哪块知识,就可以立刻回忆起此部分的框架,做到信手拈来。
(1)深入理解HTML以及HTML5、CSS3、以及JavaScript等前端编程语言,在掌握基本知识的基础上进行查漏补缺。
(2)深入理解并掌握MySQL的运行机制及存储过程,熟练掌握每条SQL语句的使用,掌握MySQL中定义的各种数据结构。
(3)掌握PHP基本的函数库,以及常用的函数方法(大约有180多个)。PHP绝大部分功能的实现都需要使用这些方法。此外,还要深入理解每个函数的具体功能及数据结构,做到可以能运用多个函数方法实现一项复杂的功能。
(4)在掌握PHP函数库的同时,也要熟练运用JavaScript的函数库,因为这两种语言在语法格式上基本是相通的。此外,要想深入学习JavaScript语言,掌握一个JS框架也是至关重要的。
(5)在掌握JavaScript的用时,深入学习jQuery和Ajax技术也是必不可少的。
(6)深入学习PHP的模板引擎,如Smarty或Blade模板引擎可以做到前后端的分离,降低程序模块间的耦合性。此外,掌握PHP的面向对象机制,试着自己封装一个数据库类,了解MVC架构模式,掌握几个常用的PHP开源框架,例如thinkPHP、laravel等。
2.3精神可贵
熟练掌握以上这些的技术,基本能够达到中高等水平,已经可以开发一个普通的网站了。但是想要成为精通PHP的大牛,还是有不少差距的。这就需要在平时的项目开发中积累经验,团队成员之间也要加强交流合作。
除此之外,重要的一点就是与时俱进的学习态度。知识决定一切,技术决定一切,21世纪是个知识爆炸的时代,IT互联网也是更新换代快的集体。在IT互联网界,一天不学习就有可能被世界淘汰。因此,学习,至关重要!
3.1手册至关重要
学习PHP配备一个开发手册至关重要,一部好的开发手册就像一部新华字典,字典在刚开始入门识字的时候起的作用不言而喻。PHP参考手册对PHP的函数进行了详细描述和讲解说明,并且还给出了一些具体的实例,方便读者对内容知识的加深理解。而且还对PHP的安装配置、语言参考、安全和特点等内容进行了详细介绍,非常适合刚刚学习PHP的小白使用。
在http://www.php.net/docs.php网站上提供有PHP的各种语言、格式和版本的参考,让读者可以进行在线阅读及下载。
PHP参考手册不但对PHP函数进行详细的解释说明,而且还提供了快速查找的方法,让用户可以快速精确定位到指定函数。
3.2得心应手的开发工具
集成开发环境是一种集成
评论
还没有评论。