第一天:从PHP到Golang,零基础入门的环境搭建与第一个程序

2025-12-03 yvsm Go语言

作为一名PHP开发者,当你决定接触Golang(简称Go)时,首先会好奇它和熟悉的PHP有哪些差异,以及如何快速迈出第一步。今天我们就从环境搭建和第一个Go程序入手,用PHP开发者熟悉的思维来解锁Go语言的入门姿势。

一、为什么PHP开发者要学Go?

在开始之前,先明确Go的核心优势,这能帮你理解它和PHP的定位区别:

  1. 性能差异:PHP是解释型脚本语言,运行依赖Zend引擎,在高并发场景下性能瓶颈明显;Go是编译型语言,直接编译为机器码,执行效率接近C/C++,且天生支持高并发。

  2. 并发模型:PHP通常依赖FPM进程模型实现并发,资源占用高;Go的Goroutine(协程)轻量且高效,几万甚至几十万协程也能轻松承载。

  3. 部署方式:PHP项目部署需要搭配Web服务器(Nginx/Apache)和PHP-FPM;Go项目编译后是单一可执行文件,无需依赖运行环境,部署极其便捷。

  4. 工程化能力:Go内置完善的标准库和包管理工具,代码规范强制统一,大型项目维护成本远低于PHP。

二、Go环境搭建(对标PHP环境配置)

PHP开发时我们需要安装PHP解释器、配置环境变量、搭配Composer做包管理,Go的环境搭建逻辑类似,步骤如下:

1. 下载并安装Go SDK

  • 访问Go官方下载地址,根据自己的系统(Windows/macOS/Linux)下载对应版本的安装包。

  • Windows:双击安装包,一路默认即可(会自动配置环境变量);

  • macOS:可通过brew install go快速安装,或手动挂载dmg包安装;

  • Linux:通过wget下载压缩包,解压到/usr/local/go,并配置环境变量。

2. 验证安装(对标php -v)

打开终端/命令行,输入以下命令,若能输出Go版本则说明安装成功:

go version

这和PHP中执行php -v验证版本的逻辑完全一致。

3. 配置GOPATH(对标PHP的项目根目录)

GOPATH是Go的工作区目录,用于存放项目代码、编译产物和第三方依赖,类似PHP中我们约定的项目根目录(如wwwroot)。

  • 查看默认GOPATH:执行go env GOPATH;

  • 自定义GOPATH:可通过系统环境变量配置(如Windows在“环境变量”中新增GOPATH,值为自定义目录)。

4. 包管理工具(对标Composer)

早期Go用GOPATH管理依赖,现在推荐使用Go Modules(Go1.11及以上版本支持),类似PHP的Composer:

  • 初始化项目模块:在项目目录执行go mod init 项目名(等价于PHP的composer init);

  • 安装第三方依赖:go get 依赖包地址(等价于PHP的composer require)。

三、第一个Go程序(对标PHP的Hello World)

PHP中我们写的第一个程序通常是echo "Hello World",Go的第一个程序也很简单,且能直观看到它和PHP的语法差异。

1. 新建项目与文件

  1. 在GOPATH的src目录下新建文件夹hello-go(或自定义目录);

  2. 新建文件main.go(Go的源文件后缀为.go,类似PHP的.php)。

2. 编写代码

打开main.go,写入以下代码:

// 声明main包,Go程序的入口必须在main包中
package main

// 导入fmt包,用于输入输出,类似PHP的echo/print_r
import "fmt"

// 入口函数main,类似PHP脚本的全局代码(无函数包裹时)
func main() {
    // 输出Hello World,对标PHP的echo "Hello World\n"
    fmt.Println("Hello World! 我是从PHP转Go的开发者")
}

3. 运行程序(对标PHP的两种运行方式)

Go运行程序有两种方式,对应PHP的“脚本直接运行”和“编译后运行”:

方式1:直接运行(对标php index.php)

在项目目录执行命令,Go会自动编译并运行代码:

go run main.go

这和PHP直接执行php main.php的体验一致,无需手动编译。

方式2:编译为可执行文件(对标PHP的扩展编译)

执行以下命令,会生成一个可执行文件(Windows为.exe,Linux/macOS为无后缀文件):

go build main.go

生成后直接运行可执行文件即可:

  • Windows:main.exe;

  • Linux/macOS:./main。

这是Go的核心优势之一,编译后的文件可在无Go环境的机器上直接运行,而PHP必须依赖解释器。

四、PHP与Go核心语法初对比

为了帮你快速衔接,我们用表格对比两者的基础差异:

特性PHPGo
代码文件后缀.php.go
入口方式全局代码/指定入口文件必须在main包的main函数
变量声明无需声明类型(弱类型)必须声明类型(强类型)
输出方式echo/print_r/var_dumpfmt.Println/fmt.Printf
运行方式解释执行直接运行/编译为可执行文件

五、今日小结

今天我们完成了Go的环境搭建,写出了第一个Go程序,还初步对比了它和PHP的核心差异。作为PHP开发者,你可以把GOPATH理解为项目根目录、Go Modules理解为Composer、main函数理解为PHP的入口脚本,这样能快速建立认知关联。

明天我们将深入Go的变量与数据类型,用PHP的变量知识来类比学习,帮你快速掌握Go的基础语法。