有人说,PHP 是世界上最好的编程语言

日本浅草寺 | 2018-11-24 | 拍摄于 iphone 7p

PHP 的特点

  • 开源的脚本语言
  • 语法吸收了 C 语言,Java 和 Perl 的特点
  • 主要适用于 web 开发领域
  • PHP 是将程序嵌入到 HTML 中执行,执行效率比完全生成 HTML 标记的 CGI 要高许多

PHP 的集成开发环境

PHP 的运行依赖 php运行时,Apache 和 MySQL,但是我们要一个个配置安装这三个环境比较繁琐,因此我们可以直接安装一个集成开发环境,这里我在电脑上直接使用的是开源的 XAMPP,可以直接去官网下载安装,安装完之后一键启动服务即可。

我们找到 XAMPP 安装目录下的 htdocs 文件夹,这个文件夹就是默认的 PHP 的程序运行目录,比如我们在这个文件夹下建立一个文件夹名为 my-php 的项目,然后在里面放上一个名为index.php 的静态 html 文件后,我们就可以通过 http://localhost:80/my-php 进行访问了。

默认 XAMPP 的监听端口是 80 和 443。

同时在根目录下有个 phpmyadmin 的文件夹,这个就是默认 mysql 数据库的浏览器客户端管理网站,我们可以通过 http://localhost:80/phpmyadmin 进行数据库的访问和管理。

PHP 语法

PHP 的基本语法和其他编程语言一样,都是由类型声明语句和逻辑控制语句构成的,不同的是 PHP 可以嵌入到 HTML 中执行,下面是一段简单的 Hello World 程序。

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<body>

<h1>Hello PHP!</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

<?php ... ?> 代码块来标识了一段 PHP 代码片段。

更多关于 PHP 语法的细节,推荐 https://www.w3school.com.cn/php/index.asp 进行学习。

PHP 几个简单实例

简单的 form 表单提交

我们先建立一个 form.php 页面来收集用户的信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

这个页面包括一个基本的 form 表单,并且当用户点击提交的时候,会将信息带入到 welcome.php 页面。

welcome.php 页面也很简单,就是展示用户提交过来的名字和邮箱信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>

<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>

将 form 表单的数据提交到 db

这个例子我们要将用户输入的 Firstname,Lastname,Age 存入到数据库中。我们可以在 phpmyadmin 中方便的建立一张数据库表。关于如何建表这里不再赘述。

首先我们先看 db_form.php 代码,主要用来收集用户的 Firstname,Lastname,Age 信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="db_insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

收集完信息之后会发送到 db_insert.php 进行数据库存储

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
header('Content-type:text/html; charset=utf-8');

try {
$pdo = new PDO('mysql:host=127.0.0.1;dbname=person', 'root', ''); // 创建一个连接对象
$pdo->exec('set names utf8'); // 设置编码
$sql = "INSERT INTO person (id, first_name, last_name, age)
VALUES
(1, '$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
$pdo->exec($sql);
} catch (PDOException $e) {
die('操作失败' . $e->getMessage());
}
//关闭连接
$pdo = null;
?>

项目地址

https://github.com/For-learning/my-php/blob/main/oop.php

PHP 面向对象

先尝试来写一个简单的面向对象的类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

class Person
{
public $age;
public function say($word) {
echo "She say {$word}";
}
public function info() {
$this -> say("Hi");
return $this -> age;
}
}

$xiaoma = new Person();
$xiaoma -> age = 23;
$age = $xiaoma -> info();
echo $age

?>

其写法规则和 java 还是很像的。其实,PHP 严格遵循了面向对象的思想,比如单继承,多实现的特性,还有各类修饰符。因此我们在使用 PHP 面向对象编程的时候是可以严格遵守面向对象编程的思路以及其衍生出的设计模式的。

总结和感悟

之前一直在网上看一个段子,说 PHP 是世界上最好用的编程语言。在简单的入门 PHP 后最大的感受就是简单。PHP 的语法很标准,不像是 js 一样有许多坑。

PHP 在做 web 的时候前后的代码都是一门语言,这不想 java,python 等语言前端展示层和后端服务层语言是不一样的,PHP 很大程度减少了学习的成本。

PHP 是严格的面向对象的语言,这样我们能很方便的使用面向对象的开发方式进行项目开发。

虽然 PHP 在服务端的应用比较少,但是作为一种主流的 web 开发语言是有其独到的优势的。

Reference

[1] PHP 面向对象 : https://www.runoob.com/php/php-oop.html
[2] PHP 教程: https://www.w3school.com.cn/php/php_mysql_connect.asp