轻松学PHP(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-23 10:29:37

点击下载

作者:刘声杰

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

轻松学PHP

轻松学PHP试读:

前言

本书是作者将多年以来的自学方法及项目研发经验汇聚在一起而形成的,所以书中的内容会和其他的PHP图书有很大的区别,并且本书重在实践,希望你能够喜欢上它,并从中得到帮助。相见恨晚

告诉你一个秘密,你找到了这样一本PHP图书,它:● 简单易懂;● 讲解了很多实例;● 能够带着你做项目;● 引导你思考问题;● 和真实的互联网公司项目开发接轨。本书内容简介

本书共有12章,每一章的存在都是有故事的,下面听我娓娓道来。

第1章,预备知识。编程从搭建开发环境开始,而搭建开发环境对于很多初学PHP的人来说比较难,很多初学者因为开发环境一直搭建不好,最后放弃了学习。本章将以最简单的方式将PHP的开发环境搭建好,并实现第一个PHP程序。

第2章,基础知识讲解。将PHP开发环境搭建好之后,我们需要学习一些基础的PHP语法知识,比如变量、选择和循环结构、函数等。有了这些知识,我们就能够进行最基本的编程,这是非常重要的,因为任何复杂的PHP代码都是由这些基本的语法知识组成的。

第3章,将混乱思维拨乱反正的3种方法。虽然经过第2章的学习,我们已经有了基本的PHP编程能力,但是在面对复杂问题时,由于之前没有处理这些问题的经验,所以往往无从下手。本章将引入一些方法帮助你渡过这个难关。

第4章,MySQL数据库。经过第2、3章的学习,我们已经可以开始规划自己的项目了。存储项目的数据是一个迫切需要解决的问题,本章着重讲解PHP的经典搭档——MySQL数据库。本章主要介绍利用命令行的方式操作MySQL数据库。可不要小看这种方式,在生产环境中,基本上都是使用这种操作方式。

第5章,内置函数应用。PHP之所以得到很多程序员的青睐,最重要的一个原因是PHP提供了很多扩展,而这些扩展携带了很多的内置函数,合理利用好这些内置函数能够极大地提高编程速度,让我们有更多的时间来打游戏。

第6章,面向对象与数据库编程。经过前面5章的学习,我们具备了利用函数、选择结构、循环结构等知识来完成项目的能力,但是目前市场上的项目的功能都非常多,仅仅利用这些知识来实现项目的话,可维护性非常低,代码可利用率也不高,所以本章引入面向对象编程来化解这个危机。

第7章,PHP与前端合作的3种方式。实现各种网站是PHP的重要应用方向,而网站页面又是HTML格式,所以PHP与HTML相互合作是必不可少的,本章介绍3种常见的合作方式。

第8章,实现记账网站应用。经过第7章的学习,我们已经具备了实现一个网站的能力,本章就来实现一个简单、小巧的记账网站应用。

第9章,APP接口开发。实现APP接口是PHP的另一个重要应用方向,本章主要介绍写APP接口、测试APP接口以写APP接口文档。

第10章,微信开发那些事。微信二维码分享、支付、扫码登录、小程序等,无处不在的微信应用必然导致PHP朝这个方向发展。本章就带着你来了解一下关于微信开发的知识。

第11章,图片上传那些事。对于初学PHP的朋友来说,上传图片或者文件是一个难点,本章从根本上帮助你厘清上传文件的原理。

第12章,LNMP开发环境搭建。由于大部分互联网公司都会优先将服务器的操作系统选择为Linux,所以在Linux下面搭建PHP的运行环境是PHP程序员的必备技能,本章就来完成这个任务。遇到问题怎么办

学习编程肯定会遇到问题,尤其是对于初学PHP的人,那么遇到问题应该怎么办?以下是给你的一些建议。● 一切从PHP参考手册出发,基本上大部分的问题都可以从手册中

找到答案。● 遇到问题时,大脑应该尽最大可能地保持冷静,拒绝浮躁。应该

反复思考问题,这样才能够积累经验。● 问别人问题的时候,拒绝直接要整个需求的解决方案,因为没有

任何人有时间告诉你整个需求怎么做。切记!切记!这是大忌。● 一个复杂的问题往往是由很多简单的问题组成的,它往往只有那

么一个或者几个难点。要学会抽丝剥茧,找出其中的难点,逐个

攻破。● 如果可以的话,看看是否存在该问题的原型,如果有,直接拿来

分析。这个原型可以是别人写的源代码,也可以是UI。● 将复杂问题转化为图的形式,也就是将复杂问题由抽象转为具

体,这个图可以是思维导图、网络拓扑图等。理性对待市场上的宣传

经常在贴吧、论坛等地方看到一些培训机构宣传,说学了PHP之后某些人月薪高达多少。这里想告诉你的是,的确有这样的人存在,不过大部分是研究生或者毕业于好的大学的本科生。对于一般学历的、基础也不怎么样的人,很难达到所宣传的薪资。所以,希望你面对这个现实,从现实出发,不断勉励自己,笨鸟先飞。和读者的对话

问:我没有编程基础,可以学习PHP吗?

答:没有编程基础可以学习PHP,但是你还是应该具备一定的网络知识,比如知道浏览器是什么,IP地址是什么,URL是什么。

问:我的学历是大专,可以学习PHP吗?

答:目前社会给企业的压力很大,所以很多企业招人都是优先找有项目经验的,所以对于大专的你,可以准备几个好的项目。

问:PHP是自学好还是去培训机构好?

答:如果你的经济条件比较可观,又没有太强的自我约束力,那么可以考虑去培训机构。反之,建议你自学。虽然自学的路很苦、很枯燥,但是一旦自学成功,这份经历对于你学习其他编程语言(如Java、Python、Go)都有很大帮助。

问:我的英语不好,可以自学PHP吗?

答:学习编程语言不要求你过国家四六级,但基本的英文知识还是需要的。平常可以通过一些APP来学习一下英语,毕竟很多命名还是要用英文。

问:遇到问题时,我能够联系你吗?

答:请及时加QQ群(群号627219017)和我沟通交流。 问:我学了这个可以得到什么样的待遇?

答:这个不一定,获得什么待遇的关键取决于你自己,不取决于我。你项目经验多,能力足够,待遇肯定就高。

问:写这本书的目的是什么? 答:意在帮助很多想入坑PHP的程序员节省不菲的培训费用,并形成一套思维体系。

问:都说PHP已经“死”了,还有必要学吗?

答:任何语言都会“死”,但是我们的思想没有死,学任何语言都是一样的,重要的是我们的思维,编程语言仅仅是一种实现工具。

问:有些软件下载不下来,怎么办?

答:可以到QQ群去下载,我会不定期将最新的软件安装包放在上面。资源与支持

本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。配套资源

本书提供如下资源:● 本书源代码。

要获得以上配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。关于异步社区和异步图书“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。异步社区微信服务号第1章 预备知识

目前PHP的主要应用领域有各种网站开发、APP接口开发、第三方平台接口开发、微信开发等,而这一系列的应用领域都是用URL请求的。本章将介绍关于URL的各种知识。

既然是学习PHP编程,那么首先肯定要有一个写PHP代码的编辑器。写好了PHP代码后,还需要一个运行PHP代码的环境。而这一切,在本章中我都会为你一一介绍。1.1 URL相关知识

在Web编程领域中,一切皆“请求”。下面是一些常见的请求场景。● 用户打开百度搜索自己需要的信息。● 电商网站通过顺丰快递物流接口获得商品快递信息,并向用户展

示。● 微信通过我们传递过去的支付回调URL告知用户支付情况。● 调用运营商短信接口进行发送短信的操作。● 调用天气预报接口获得当地或某地天气信息并展示在网站或者

APP上。● 调用百度语音REST API接口进行文字转语音操作,从而实现

APP支付结果语音提示。● 调用百度图片审核接口实现对色情、恐怖、不雅等图片的审核。● 调用地图接口进行药店的维护,从而实现向用户展示附近药店的

功能。● 调用地图接口进行房源的维护,从而实现向用户展示附近房源的

功能。

上面这么多场景,都说明了一个问题,即在Web编程领域,一切皆请求,且URL在请求中却占着重要的角色。在本书中,如果没有特殊说明,主要讲解的是以HTTP协议为主的URL。1.1.1 陌生而熟悉的URL

图1-1所示的是在百度里面搜索关键词“怎么自学PHP”的检索结果,想必正在看本书的你,已经这样操作了无数次。在图中除了检索结果外,我们还看到了一个网址https://www.baidu.com/s?wd=怎么自学PHP&rsv_spt=1……,这个网址其实就是一个URL。图1-1 用百度搜索怎么自学PHP1.1.2 URL的组成

图1-1中的URL是千千万万个URL中的一个,它仅是一个特例,那么一个完整的URL到底是什么样的呢?下面我们来揭开它的神秘面纱。图1-2 一个完整的URL

图1-2所示的是一个完整的URL框架,下面我们来对它进行解剖分析。● http:表示这是一个基于HTTP协议的URL,当然还可以取https和

ftp等。● username:表示需要使用这个用户名进行权限访问,必须和

password配合使用。● password:参见上面的username。● hostname:IP地址或域名,用于表示将这个请求发送到什么地

方。● 9090:端口号,如果没有提供则默认是80端口。● path:路径,表示将请求发送到hostname的什么位置进行处理。● arg=value:查询参数,对应图1-1中URL的“wd=怎么自学

PHP&rsv_spt=1”。● anchor:锚点,常用于实现页面内跳转,比如从页面的一个地方

跳转到另一个地方。

对比图1-1中的URL和图1-2中的完整URL框架,我们发现username、password、9090(port)和anchor不是必需的,但username、password在FTP类型的URL中非常常用。

PHP提供了一个分析URL组成的内置函数parse_url,我们将在后面的章节中对其进行讲解。1.1.3 非常优秀的Chrome浏览器

目前常用的浏览器有微软的IE、谷歌的Chrome和Mozilla的Firefox,其他国内的浏览器都是基于这些浏览器开发的。对于开发者来说,有一款好用的浏览器是非常重要的,前端程序员常用的是Firefox,后端程序员常用的是Chrome,所以请首先在计算机中安装Chrome浏览器。

安装好Chrome之后,打开它并按键盘上的F12或者Ctrl + Shift + I快捷键开启浏览器的开发者工具,如图1-3所示。

如图1-3所示,我们可以看到开发者工具包含了几个部分,下面对其进行介绍。● Elements:在这里可以看到目前页面的全部HTML源代码,我们

可以对其进行编辑,同时还可以动态地设置某个HTML元素的

CSS属性。● Console:在这里可以看到打印的一些信息,它在调试JavaScript

的时候非常有用。● Sources:在这里可以看到目前页面都有哪些图片。● Network:在这里可以看到访问这个页面的时候,浏览器发送了

哪些请求。图1-3 Chrome浏览器的开发者工具● Application:在这里可以看到目前页面的Cookie、Session

Cookie和本地存储、基于JavaScript的数据库存储及离线资源

等。

作为PHP程序员,利用好上面的几个功能就足够了。 提示 在本书后面的所有章中,如果没有特殊说明,浏览器统一指Chrome浏览器,浏览器开发者工具统一指Chrome浏览器的开发者工具。首次打开没有内容的话,你按Ctrl + F5刷新页面就可以了。1.1.4 URL编码

下面我们在百度搜索关键词“怎么自学PHP”,然后打开浏览器开发者工具,看看到底浏览器发送的请求是什么,如图1-4所示。

如图1-4所示,我们发现“怎么自学PHP”变成了一系列的%字符系列,这就是URL编码。图1-4 Chrome浏览器的开发者工具

为什么要进行编码呢?因为RFC 1738规定URL只可以包括字母数字等很小部分的英文字符。为了传递中文等特殊字符,就必须进行编码,PHP提供了两个常用的编码解码函数:urlcode和urldecode。1.2 一个经典的小型PHP网站运行原理

图1-5所示的是一个小型PHP网站的运行原理,下面我们对该运行原理进行分步讲解。● 用户通过PC或者手机浏览器访问http://www.myself.personsite。● 浏览器将访问请求发送到Web服务器。图1-5 一个小型PHP网站的运行原理图● Web服务器处理请求,发现它是基于PHP的请求,然后将请求及

一系列参数传递给PHP解释器处理。● PHP解释程序处理请求时,发现请求可能和数据库、缓存及文件

相关,那么将数据存储在这些地方或者从这些地方读取数据。● 处理完请求并将其组织成HTML代码返回给Web服务器。● Web服务器将HTML数据返回给浏览器。● 浏览器收到返回数据,并且进行HTML解析、CSS渲染、

JavaScript代码解释等操作。● 用户看到最终的页面。1.3 服务端各个角色介绍

在图1-5中,相信作为初学者的你,除了浏览器以外,还对很多模块都不太清楚,下面我将逐个讲解。1.Web服务器

目前比较常用的是Apache和Nginx。在本书中,我们首先使用Apache,它的最重要的一个功能是将浏览器发送的请求直接处理或者调用PHP解释器处理,并且将处理结果返回给浏览器显示。

所谓直接处理请求指的就是对于一些请求Web服务器能够直接找到对应的文件内容,比如显示一张静态图片,因为这张图片本身就已经存在了,所以Web服务器能够直接将这张图片返回给浏览器,而不需要经过PHP解释器的处理。2.PHP解释器

在现实场景中,我们需要的是较为复杂的功能,而这些功能的数据是动态生成的,不是生来就有的,所以仅仅依靠Web服务器还无法满足我们,这个时候就可以借助PHP解释器来扩展我们的Web服务器了。这样当Web服务器发现是PHP请求的时候,就会将请求丢给PHP解释器处理。3.数据库

随着中国高铁网络的形成,大多数人都注册了12306网站并在网站上购买过火车票。为什么我们能够利用注册的账号购买火车票呢?这说明了一个道理,我们注册的数据,12306网站都对其进行了保存。对于保存数据,数据库是一种很重要的手段。因为 PHP常与MySQL数据库合作,所以本书所讲的数据库以MySQL数据库为主。4.缓存

对于一些特殊的、不经常变化的数据,比如一些统计数据结果,如果每次显示的时候,都去动态计算,这样随着统计数据的增多,程序的响应会越来越慢,具体表现就是在打开一个页面时,页面一直是加载中或者显示为空白。我们可以将这些统计数据结果直接保存到缓存里面去,这样下次请求到来的时候,就可以直接从缓存种获取数据并进行显示了。这是一种重要的提高性能方法,即只计算一次,后面直接取结果。常用的缓存方案有Redis和Memcached。5.文件

虽然有了数据库保存数据,但是有时候一些数据保存在文件里面或许更方便。比如一些配置文件(如数据库和缓存连接信息、邮件服务器连接信息等),如果采用数据库来保存的话,就多了很多增、删、改、查的麻烦逻辑。所以很多PHP框架都包含了一个类似config的目录,该目录就是用来保存一系列配置文件的。1.4 4个环境

目前大部分互联网公司都会部署以下4个环境。1.本地开发环境

所谓本地开发环境,其实就是程序员在自己计算机中安装的开发环境。一般流程都是在本地写好代码并且测试好,然后通过SVN或者GIT等版本控制软件将代码提交并保存,同时将其代码更新到测试环境中,以便测试人员进行测试。2.测试环境

当开发人员将功能在本地开发环境完成并进行自我测试之后,就会提交代码到测试环境中。测试环境的服务器可以是内网的服务器,也可以是外网的服务器。但是为了节约成本,一般都是内网服务器。3.发布环境

经过本地环境的自我测试和测试环境的测试,代码理论上应该没有问题了,但是有时候因为各种历史原因,导致测试代码和生产环境的代码有很大的不同,这个时候需要部署一个和生产环境一模一样的环境,即发布环境,以进行线上测试。由于线上测试是对真实数据进行操作,所以需要很谨慎。4.生产环境

生产环境就是服务于我们的目标用户环境。在这个环境中,理论上不再允许测试代码,因为所有数据都是用户产生的真实数据,如果因为测试导致数据丢失,后果就非常严重了。1.5 本地开发环境搭建

在1.4节中我介绍了4个环境,接下来我将接着讲解如何搭建本地开发环境。有了本地开发环境,我们才能够编程。如图1-5所示,要搭建一个本地开发环境,需要做以下事情。● 安装Web服务器。● 安装数据库。● 安装PHP。● 拥有一个属于自己的域名www.myself.personsite。● 拥有一个写PHP代码的编辑器。● 拥有一个修改配置文件的编辑器。1.5.1 环境说明

本书前期用的是Windows系统,并且没有采用源码安装开发环境,而是采用了傻瓜式集成软件XAMPP来完成PHP的开发环境搭建,为什么要这样做呢?因为一般在真实的项目环境中,都是采用Linux的各种发行版操作系统,如CentOS、Ubuntu。而要操作这些系统,必须有Shell的相关知识,对于初学者来说,这门槛不低。

在Windows系统开发环境中,入门的PHP代码放在D:\site下,而项目代码放在D:\project下,所有软件安装在D:\software下,请尽可能遵守这个约定。如果你的操作系统只有一个系统盘(如C盘),那么请自己定义这3个目录的存放位置。

在Linux系统下搭建PHP开发环境是一个高级PHP程序员必备的技能,本书后续章节会专门介绍怎样在Linux系统下面搭建开发环境以及安装各种开源软件。1.5.2 安装Notepad++软件

因为在PHP开发中,我们经常需要修改各种配置文件和系统hosts文件,虽然可以采用记事本来修改,但是记事本的体验很不好,比如设置编码非常麻烦,所以我们采用Notepad++来修改。

安装Notepad++的主要步骤如下。● 在D:\software目录下面新建一个名称为Notepad++的目录。● 打开Notepad++官网,下载安装包,如图1-6所示。图1-6 Notepad++官方网站显示界面● 将下载的安装包安装在目录D:\software\Notepad++下,在安装的

时候请选择英语或者简体中文等你熟悉的语言。● 安装完成并打开Notepad++。1.5.3 一个神奇的现象

找到系统的hosts文件(一般在C:\Windows\System32\drivers\etc下),用Notepad++打开并进行编辑。在该文件里面新增一条记录127.0.0.1 www.baidu.com,如图1-7所示。图1-7 hosts文件内容

保存之后用浏览器访问百度,我们发现了一个神奇的现象——百度网站打不开了。 提示 在hosts文件中#表示注释,就是不生效的意思。::1表示一个IPV6地址。如果修改后由于权限无法保存hosts文件,可以以管理员身份运行Notepad++软件再进行修改、保存。1.5.4 hosts文件的作用

如图1-7所示,我们仅仅添加了一行记录,就导致百度网站无法打开了,为什么会这样呢?

从1.2节PHP网站运行原理我们已经知道,浏览器的请求首先将被发送到Web服务器,而当我们访问百度官网的时候,由于hosts文件的作用,它将访问的是127.0.0.1这个IP地址对应主机上的Web服务器,而这个127.0.0.1对应的主机其实就是我们自己的计算机。我们计算机上肯定没有百度网站了,所以就导致百度网站无法打开。

从上面的描述我们可以看到,hosts文件的优先级非常高,现在仅仅在hosts文件里面添加记录127.0.0.1 www.myself.personsite,就可以完成本地域名的创建。

通过添加这个记录后,我们在浏览器中访问www.myself.personsite时,实际上是访问自己计算机中的www.myself.personsite域名对应的网站。1.5.5 安装XAMPP

有了本地域名,接下来我们需要进行Web服务器、数据库和PHP的安装,这里我们选择集成安装软件包XAMPP来一次性安装完这些软件,主要安装步骤如下。(1)在D:\software目录下,新建一个名为XAMPP的目录。(2)打开浏览器在XAMPP官网下载安装包,如图1-8所示。图1-8 XAMPP官方网站显示界面(3)将下载的安装包安装在D:\software\XAMPP下。在安装的过程中,请参考图1-9进行安装组件选择。(4)安装完成后打开XAMPP,并启动Apache和MySQL,如图1-10所示。图1-9 安装组件选择推荐图1-10 XAMPP运行界面 注意 在运行XAMPP软件后,我们仅仅需要开启Apache和MySQL就可以了。单击Start以开启,如果无法开启Apache,请检查自己是否安装了IIS或其他Web服务器。1.5.6 配置Web服务器

在1.5.4节中,我们已经有了本地域名www.myself.personsite,现在需要让Web服务器响应该域名的请求,按照以下步骤进行操作。(1)打开目录D:\software\XAMPP\apache\conf\extra。(2)用Notepad++软件打开并编辑文件httpd-vhosts.conf,新增代码清单1-1中内容后重启Apache。

代码清单1-1 www.myself.personsite域名响应配置1. #本地www.myself.personsite配置2. #serverAdmin表示管理邮箱,你可以任意设置3. #DocumentRoot表示网站代码存储位置4. #ServerName表示站点域名5. 6. ServerAdmin 123456789@qq.com7. DocumentRoot "D:/site"8. ServerName www.myself.personsite9. 10. Options +FollowSymLinks11. AllowOverride All12. Require all granted13. 14.  注意 在增加代码清单1-1的内容到httpd-vhosts.conf文件时,请一定要注意空格的使用,不要将代码连接起来。#表示注释。因为开启Apache之后,图1-10所示的Start会变成Stop,所以重启Apache就是单击Stop之后再单击一次Start。1.5.7 安装PhpStorm软件

经过前面的介绍,我们已经搭建好了大部分的开发环境,现在接着安装写PHP代码的编辑器。写PHP代码的编辑器很多,本书推荐PhpStorm。

安装PhpStorm并执行第一个PHP程序的主要步骤如下。(1)在D:\software目录下,新建一个名为PhpStorm的目录。(2)打开浏览器从PhpStorm官网上下载安装包,如图1-11所示。图1-11 PhpStorm官方网站显示界面(3)将下载的安装包安装在D:\software\PhpStorm下。(4)安装完成后运行PhpStorm软件,从该软件中打开D盘下面的site目录,如图1-12所示。图1-12 从PhpStorm打开D盘中的site目录(5)打开D:\software\XAMPP\php目录,然后用Notepad++打开php.ini文件,修改时区为中国所在的东八区,如图1-13所示。分号表示注释。图1-13 修改默认时区为上海(6)重启Apache,用PhpStorm在site目录下新建一个index.php文件,内容如代码清单1-2所示。

代码清单1-2 index.php1.

打开浏览器访问http://www.myself.personsite,如果可以看到PHP配置页面(如图1-14所示),说明整个开发环境就搭建好了。图1-14 第一个PHP程序运行结果1.6 习题

作业1:PhpStorm是一个相对复杂的软件,所以你需要多操作该软件,下面是一些操作任务。● 学会用该软件打开和创建项目。● 学会该软件的很多快捷键操作,比如Ctrl + G快捷键用于迅速跳

转到某行。● 学会用该软件创建各种文件,比如PHP、JavaScript、CSS、

HTML等文件。

作业2:虽然采用XAMPP搭建PHP环境是傻瓜式的操作,但是还是希望你能够多操作几次,直到非常熟悉,以为之后的LNMP环境搭建做好知识储备。

作业3:在图1-10所示的XAMPP运行界面上单击每个按钮,看看都是什么功能,为之后修改各种配置文件做准备。

作业4:认真思考为什么本地域名www.myself.personsite会生效?

作业5:Chrome浏览器对我们来说是非常重要的浏览器,请多看看Network部分,熟悉HTTP的请求头和响应头。第2章 基础知识讲解

为什么要学习PHP?一个最根本的原因就是想将PHP应用于生活以解决生活中遇到的一些问题。

表2-1是一个记账表格。在生活中,我们很多人都有记账的习惯,回过头来看记账,是不是其实就是对各种消费收入数据进行加减乘除等操作呢?所以,为了用PHP实现这个记账功能,我们需要做两件事,一件事就是将这些数据用PHP表现出来,即数据类型;另一件事就是用PHP将表现出来的数据进行加减乘除等运算,即操作运算符。表2-1 记账表格日期金额(元)备注2018-06-01−32.5吃饭消费2018-06-02+80兼职发传单2018-06-10−25购买考研书籍2018-06-11−115.5给女朋友买礼物2018-06-12+10悟空问题答题红包2018-06-13−25购买零食2018-06-14−32.5购买无线网卡2018-06-15+80投稿赚钱2018-07-02−25生活消费2018-07-05−200朋友生日红包2018-08-02+80发传单2018-08-06−25网吧打游戏

请认真对待表2-1,因为在本书中它会陪伴你很长时间,记账网站应用开发、APP接口开发和微信开发等应用都是围绕它进行的。 注意 如表2-1所示,我们将日期、金额、备注所在行称为表头,表头下面的行叫作数据行。在本书中如果没有特殊声明,之后的计算都是指数据行,也就是不包括表头。本章所有代码都是入门级代码,都在D:\site目录下。2.1 数据类型与变量

为了将PHP的常用数据类型说清楚,现在我们结合表2-1完成以下需求。● 用PHP表示日期中的数据。● 用PHP表示金额中的小数和整数。● 用PHP表示备注中的数据。● 用PHP表示第一行的日期、金额和备注数据。● 用PHP表示第1~3行的日期、金额和备注数据。2.1.1 字符串

如果所要表示的数据中有字母、数字和字母、中文字符、-或_等符号,我们可以用字符串来对其进行表示。例如,表2-1中的日期和备注我们就能够用字符串来表示。

如代码清单2-1所示,PHP提供了4种方式来表示字符串类型的数据。第1种是用单引号围起来,第2种是用双引号围起来,第3种和第4种方式主要用于字符串内容非常多的情况。同时,代码中除了有字符串的表示外,还有$date和//,它们分别是PHP中的变量和注释。

代码清单2-1 string_test.php1.

打开浏览器访问http://www.myself.personsite/string_test.php,代码清单2-1的运行结果如图2-1所示。图2-1 代码清单2-1的运行结果2.1.2 为什么需要注释

当你进入互联网公司工作后,一般情况下,都不是你一个人在完成项目,而是有很多个同事和你一起完成,甚至同一个功能的代码也是有多个同事和你一起完成。这个时候,如果你对自己的代码不进行注释,那么其他同事是很难看懂你的代码的。

有了注释,其他同事一眼就能够知道这个代码片段、方法或函数是做什么的。

养成良好注释的习惯是一个程序员最基本的素质,从注释就能够看出一个程序员是否有责任心、是否是一个专业的程序员。

在PHP里面我们常用两种注释——单行注释和多行注释(用于注释内容非常多的情况),如代码清单2-2所示。

代码清单2-2 comment_test.php1.

为了让读者彻底明白引入变量的意义,我们来做3个代码实验,如代码清单2-3、代码清单2-4和代码清单2-5所示。

代码清单2-3 variable_one.php1.

现在我们需要将输出的字符串“兼职发传单”变成“购买考研书籍”,于是代码变成了下面这样:

代码清单2-4 variable_two.php1.

看看,仅仅变换一个字符串,我们就要修改这么多行代码,如果有几千行,岂不是非常麻烦?为了解决这个问题,我们引入变量,有了变量,我们就能够随心所欲地修改输出了。

如代码清单2-5所示,我们现在仅仅只需要修改变量的值就可以了。在今后的编程中,我们经常会将从数据库、缓存等地方取到的数据存储进变量中,方便之后的操作。

代码清单2-5 variable_three.php1.

在生活中我们或许会听到这样的故事,某某父亲为了给儿子或者女儿娶一个好听的名字,翻遍新华字典、历史图书等。同样,变量也存在怎么取名的问题。

对比代码清单2-6中的两种形式,我们发现第2种的可读性非常好,其他同事一看就知道这个变量是什么意思。比如$date一看就知道它表示的是日期。

代码清单2-6 variable_intitle.php1.

从这个例子我们可以看出,取变量名的规则是:语义化,用英文单词来表示。这样做,和你一起协同开发的程序员就可以很容易地明白变量的含义了。可不要小看这个命名规则,它对于数据库和数据表命名、之后的函数命名和类命名、CSS属性命名及JavaScript里面的相关变量和函数等的命名都适用,我为它取名为“命名语义化原则”。2.1.5 整数

如果需要表示的数据是数值,并且是非小数,那么可以使用整数来表示。学生年龄、一个班级的人数等就可以用整数表示,如代码清单2-7所示。

代码清单2-7 integer.php1.

如果需要表示的数据是数值,那么可以使用浮点数(小数)来表示。商品价格、订单的金额等就可以用浮点数表示,表2-1中的金额既有小数也有整数,所以可以用浮点数来表示,如代码清单2-8所示。

代码清单2-8 float.php1.

经过前面的学习,我们已经可以用PHP将表2-1里面的日期、备注和金额等数据都表示出来了,但是还有一个问题,就是这些数据非常零散,这是什么意思呢?现在我要将表2-1中的第一行数据表示出来该怎么办?将第1~3行的数据表示出来又该怎么办?一行数据里面既有字符串也有浮点数,比较零散。为了完成这两个需求,我们不得不引入数组。

如代码清单2-9所示,我们发现PHP提供了两种表示数组的方法,第1种表示方法是从PHP 5.4版本之后开始支持的。

代码清单2-9 first_data.php1. '2018-06-01',5. 'money' => -32.5,6. 'comment' => '吃饭消费'7. ];8. //输出数据到浏览器9. print_r($billData);10. 11. //第2种表示12. $billData = array(13. 'date' => '2018-06-01',14. 'money' => -32.5,15. 'comment' => '吃饭消费'16. );17. //输出数据到浏览器18. print_r($billData);

打开浏览器访问http://www.myself.personsite/first_data.php,代码清单2-9的运行结果如图2-2所示。图2-2 代码清单2-9的运行结果

如代码清单2-9所示,我们已经用PHP成功地将一行数据表示出来了。那么如果要表示多行数据该怎么办呢?下面我来为你揭晓答案。

如代码清单2-10所示,我们顺利地用数组将第1~3行的数据表示出来了,并且在代码的最后一行还输出了第二行数据下面的comment值。

代码清单2-10 muli_data.php1. '2018-06-01',7. 'money' => -32.5,8. 'comment' => '吃饭消费'9. ],10. //第2行数据11. [12. 'date' => '2018-06-02',13. 'money' => 80,14. 'comment' => '兼职发传单'15. ],16. //第3行数据17. [18. 'date' => '2018-06-10',19. 'money' => -25,20. 'comment' => '购买考研书籍'21. ]22. ];23. //输出数据到浏览器24. print_r($billData);25. 26. //第2种表示27. $billData = array(28. //第1行数据29. array(30. 'date' => '2018-06-01',31. 'money' => -32.5,32. 'comment' => '吃饭消费'33. ),34. //第2行数据35. array(36. 'date' => '2018-06-02',37. 'money' => 80,38. 'comment' => '兼职发传单'39. ),40. //第3行数据41. array(42. 'date' => '2018-06-10',43. 'money' => -25,44. 'comment' => '购买考研书籍'45. )46. );47. //输出数据到浏览器48. print_r($billData);49. 50. //访问第2行记录下面的comment值51. echo $billData[1]['comment'];

打开浏览器访问http://www.myself.personsite/muli_data.php,代码清单2-10的运行结果如图2-3所示。图2-3 代码清单2-10的运行结果2.1.8 访问数组元素

在PHP中,数组是一个非常重要的数据类型,下面我们继续讲解数组相关知识。

如代码清单2-11所示,我们发现数组其实就是一个key => value的键值对,只不过如果忽略key的话,默认key就是从整数0开始的。

代码清单2-11 array_access.php1. '2018-06-01',5. 'money' => -32.5,6. 'comment' => '吃饭消费'7. ];8. 9. //依次输出各个值10. echo $consumeIncomeData['date'] . PHP_EOL;11. echo $consumeIncomeData['money'] . PHP_EOL;12. echo $consumeIncomeData['comment'] . PHP_EOL;13. 14. //各个金额数组15. $moneyArr = [-32.5, 80, -25, -15];16. //依次输出各个金额17. echo $moneyArr[0] . PHP_EOL;18. echo $moneyArr[1] . PHP_EOL;19. echo $moneyArr[2] . PHP_EOL;20. echo $moneyArr[3] . PHP_EOL;

打开浏览器访问http://www.myself.personsite/array_access.php,代码清单2-11的运行结果如图2-4所示。图2-4 代码清单2-11的运行结果2.2 数据运算

经过第2.1节的学习,我们已经用合理的数据类型将表2-1这个记账表格中的各种数据表示出来了。现在我们来进行第二件事,即对这些数据进行各种运算。2.2.1 基本的算术运算符

还记得数学的加、减、乘、除、乘方、取余等运算吗? PHP支持这些运算,如代码清单2-12所示。

代码清单2-12 arithmetic_test.php1.

打开浏览器访问http://www.myself.personsite/arithmetic_test.php,代码清单2-12的运行结果如图2-5所示。图2-5 代码清单2-12的运行结果2.2.2 常用的比较运算符

除了算术运算外,我们还经常做比较运算,比如大于、小于、不大于、不小于、等于等,PHP也提供了这些运算,如代码清单2-13所示。

代码清单2-13 compare_test.php1. $c);17. var_dump($a < $c);18. var_dump($a >= $c);19. var_dump($a <= $c);

打开浏览器访问http://www.myself.personsite/compare_test.php,代码清单2-13的运行结果如图2-6所示。图2-6 代码清单2-13的运行结果2.2.3 布尔值

在2.2.2节中,我们介绍了常用的比较运算符,这些比较运算符的结果都是true和false,也就是取值只有两个,要么等于要么不等于,要么大于要么不大于。在生活中我们也会面对这种情况,比如我们要

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载