一篇文章学完PHP基础

PHP基础

今天我们将开始学习一门新的语言,也就是有着“世界上最好的语言”称号的PHP编程语言!

首先,学习一门编程语言我们需要干嘛嘞?肯定是先配置编程环境了对吧。我们在教学中将使用传说级的代码编写神器--vscode来进行演示如何进行PHP基础代码的编辑和运行。

在vscode中,我们需要下载三个神一样的插件来辅助我们的编程,如下图所示

在下载好插件以后,我们先新建一个名为index.php的文件,这里大家可能有疑惑,我们先解释一下,“.php”是PHP语言的一个官方后缀,我们以后见到这样的后缀文件就可以了解到这个源代码是使用的什么语言来编写的,通过后缀来判断源代码的编程语言是一种比较高效的方法。我们将看到右下角有几个提示,这是编辑器告诉我们,我们目前电脑上没有关于PHP的编译器或者编译器没有配置环境变量,我们只需要去下载一个或者配置环境变量即可。

进入PHP的官方网站(https://www.php.net/),然后可以看到下面的有关介绍

我们直接在当前页面点击Download按钮进入下载页面,并且点击windows相关的选项即可,这样就可以直接下载到windows上面的最新版的安装包。

下面直接点击zip的选项下载即可

下载完成后我们用压缩软件打开,可以看到PHP的相关软件程序,我们直接解压到我们可以找到的目录

我们下一步将要打开我们解压好的PHP程序根目录,并且将这个目录添加到环境变量,添加环境变量前面已经提到,这里不再赘述。

后面就不会提示没有PHP编译器了。

我们再下载一个扩展,如下图,它将为我们的目录搭建一个本地服务器环境,方便我们的PHP代码测试。

我们首先设置一下这个插件

下面将圈红的文件改为php.ini即可,然后可以在vscode中运行PHP代码。

下图是json格式的vscode配置选项,我这里选择的PHP是比较老的和我的宝塔服务器绑定的版本,大家可以随意选择其他的版本。

后面我们可以使用debug来测试我们PHP的输出

下面我们测试运行第一个PHP程序代码

下面是浏览器运行版本,在实际运用中,我们更推荐浏览器运行的版本。

学习一门语言,我们逃不开语言的基础语法,PHP的语法非常简单,如果你学过其他的编程语言,你将会非常容易理解该语言的编码语法。首先,我们将学习万门语言的第一步,输出hello world,这是一个比较基础的语法,只是涉及到打印输出,在PHP中,打印输出为echo(“内容”);,别忘了分号。

我们解释一下,PHP的文件结构,每个PHP源代码文件将包含在<?php ?>这样的结构中,当然,如果你是纯PHP代码的文件,后面的收尾内容可以不写,就像我上面的写法一样。对比上面的语法,两种写法的结果是一样的。

在所有的编程语言体系中,我们是离不开变量的,PHP的语法中,变量是不严格型的,PHP解释器可以动态识别变量的类型,是int或者string,我们只需要定义一个变量名即可,需要注意的是,变量名的定义符号是$符号。下面这段语法我们定义了一个名叫start的变量,并将字符串hello world这个内容赋值给它,然后打印出来。

打印内容除了echo外,还有print

除了变量外,PHP还支持常量,也就是不变的数据。常量的定义可以使用系统提供的define函数来定义,具体使用方法如下。

下面有几点需要注意:

  1. 常量定义函数define中,第一个内容是常量名,第二个内容是常量值,第三个内容需要我们填写一个bool值,这是代表是否设置该常量区分大小写,若为true,则Name和name将是两个不同的常量。
  2. 常量默认是全局可以访问的
  3. 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。
  4. 常量名不需要加 $ 修饰符

在PHP中,有很多种数据类型,但是实际上我们定义的时候无需区分那么明显

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)
  • Resource(资源类型)

为了在实战中区分变量的类型来进行更好的操作,我们可以使用语言提供的var_dump函数来进行查看。可以看到我们的start变量的类型为string类型,并且给出了字符串的长度和内容。

特别的,当我们定义变量且没有给变量赋值时和没有指定变量类型时,变量的默认值为NULL,即什么都没有。

我们在学习选择分支结构前,还得先学习一下如何去比较PHP中的变量,在PHP中变量的比较是非常简单的,直接使用“==”或者“===”,在这里解释一下这两个符号的不同,两个“=”是表示值相同,“===”表示这两个变量不但值相等,并且变量的类型也相同。

比如上面的两个输出都将为1,表示等式成立。

下面我们看选择分支结构,在PHP中,选择分支不算复杂,和大多数c家族的语言类似,直接是使用if关键词+能区分是否成立的表达式,然后是相对应的需要执行的语句。

多选择的结构只需要添加elseif即可实现,如下图,将加深你对选择结构的理解

PHP中不但支持“===”和“==”两个运算符,还支持其他运算符,支持运算符体系和c家族一样。

Switch结构和c语言一样,这里不再赘述

在语言中,数组这种数据结构可以在一个变量中储存多个值,这对于我们来说是非常有用的,在PHP中,我们可以直接使用array函数来创建数组。要知道的是,在PHP中,数组可以不必是同一种类型的数据,这是PHP给我们的甜甜的语法糖。

如何获取数组的值呢?我们可以很方便的直接使用C语言的惯例使用变量名+数组下标来获取数组中的值。

获取数组的长度在我们的实战中非常实用,直接使用count函数即可。如下图。

下面我们将学习循环,主要有for循环和while循环。下面是while循环的演示,和c语言一样,只需要给定条件和在条件内执行的语句即可。

下面展示for循环,本处小贴士一下,PHP_EOL是表示空格的意思。

下面是比较重要的函数部分,但是对于PHP来说,函数定义与调用与c无异,首先是定义函数的保留字,为function,即为函数的意思。然后是函数名称,括号里面是需要传入的参数,不需要提前判断返回值。

下面我们将学习面向对象编程,首先,我们先创建一个对象,创建对象很简单,直接使用class关键字来定义即可。

大家看上面这段代码,有很多知识点,主要知识点如下:

  1. 可以使用class关键字定义一个类
  2. 我们将学习到var关键字来定义一个类的成员变量
  3. 重写__construct函数将重写构造函数
  4. 重写__destruct函数将重写析构函数
  5. 访问成员变量为$this->成员变量,其中$this表示这个对象主体
  6. 定义一个对象使用new即可

运行结果如下

下面我们将编写一个D og类来继承自上面的Animal类并调用其中重写的eat方法。

通过这个案例我们将注意到一下几点:

  1. 继承父类使用extends关键字
  2. 需要重写父类的方法,直接重新定义方法即可
  3. 继承父类将自动继承构造函数和析构函数

类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。

我们看下面一个小例子,我们将学习新的类型--接口。

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是公有,这是接口的特性。

要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

下面我们将学习本次课程比较核心的部分,也是实战中使用最多的一部分,也就是我们的超级常量。超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。

PHP 超级全局变量列表:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

在这些变量中,我们使用最多的两个是$_POST和$_GET,这两个变量储存这我们前端网络请求的一些数据,在我们前后端分离中和与HTML混编都比较常用。为了可以更加详细的介绍这些变量,我们先介绍一下HTML与PHP混编是什么。

在web1.0时代,人们只能查看到HTML组成的一些比较有限的文本,也就是传说中的静态网页时代。到达web2.0时代,我们可以看到更多的内容,这得益于web的动态数据获取,说简单点也就是我们的数据可以被储存后按照一定的条件或者需求来展示给用户,或者用户可以安装网站程序的要求来上传自己的数据到服务器端储存起来,这样下次服务器也可以将上传的用户数据进行安装一定的条件筛查并且展示出来,这是web2.0时代内容丰富的原因之一。

通俗点来说,混编就是在一个代码文件里面,既有HTML,css,js等代码,也有PHP动态的代码,但是在服务器端解析后,PHP代码也会被解析为静态的HTML代码。

这是一段最普通的混编代码,我们使用了我们以前没有使用的包括完整的<?php ?>来实现,在里面填充了PHP的代码,我们可以查看浏览器中的源代码,发现它将PHP代码转为了静态的HTML代码,这正是混编的安全性的保障。

下面我们可以开始介绍$_GET了,我们可以先打印这个变量看看到底是什么内容,发现它是一个数组。

我们再观察下面的代码

可以发现它获取到了我们?后面的一些东西,这是一个突破性的进展,这意味着我们可以通过url来判断到底是谁访问了这个页面。类似于这样,我们可以知道是编号为8个8的用户访问了这个页面。

事实上,这个url后面的参数我们叫做http请求中get方式的参数,我们还有post形式的参数,因为一些限制,暂时无法演示。下面我们通过一个小案例来更加深化我们对于这些参数的理解。

Eg.实现一个小demo,进行判断id为888的文章编号是否存在我们的数据库中,如果存在,显示888,如果不存在显示404.

下面也是比较核心的部分,我们将学习怎么去进行PHP网络编程中的数据库编程,学会怎么去连接MySQL数据库,并且操作数据库返回内容,本段不做过多讲解,动手实践就可以记住。

下面是数据库的连接

操作数据库

其中,要注意以下几点:

  1. 应该先判断数据库是否连接成功再操作
  2. 执行查询语句和其他操作的语句返回结果类型不同,应该注意判断
  3. 查询语句返回结果类型不是数组,需要进行一定的处理

最后,我们进行最艰难的一点知识,也就是json转化,这在我们的前后端分离的项目中使用比较多,建议大家熟练掌握(闭着眼睛都能写那种)

首先是对PHP对象进行编码为json格式

JSON格式字符串到PHP对象

好的,恭喜你已经看完了这个关于PHP的教程,现在,打开你的电脑,进入编程环境,尝试做出下面的需求。

Eg.编写一个框架,需要使用到类相关的知识,编写一个前后端分离时后端PHP通过读取$_POST中的id值来进行查找,如果查找到的话,返回状态码设置为200,直接以json格式返回到前端,如果没有找到,输出为空,并且将返回状态码设置为404。

猜你喜欢

转载自blog.csdn.net/qq_35889508/article/details/128125233