"本文是PHP语法学习的第一篇,将聚焦最基础的三个部分:
- 基本语法结构:PHP文件格式、注释写法
- 变量使用:变量声明、命名规范、作用域初探
- 数据类型:整型、浮点型、字符串、布尔型等数据类型的特性和用法
通过代码示例,帮助零基础开发者快速建立PHP语法认知框架。"
目录
[1、String 字符串](#1、String 字符串)
[2、Integer 整型](#2、Integer 整型)
[3、Float 浮点型](#3、Float 浮点型)
[4、Boolean 布尔类型](#4、Boolean 布尔类型)
[5、Array 数组](#5、Array 数组)
[6、Object 对象](#6、Object 对象)
[8、Resource 资源类型](#8、Resource 资源类型)
一、基本语法
1、文件格式
PHP脚本在服务器上执行,并将纯HTML结果发送回浏览器,PHP脚本可以放置在文档中的任何位置。
PHP 脚本以**<?php** 开头,以 ?> 结尾:
php
<?php
// PHP 代码写在这里
?>
PHP文件的默认文件扩展名是 ".php"。
PHP文件通常包含HTML标签和一些PHP脚本代码。
下面是一个简单的PHP文件示例,其中包含一段PHP脚本,该脚本使用内置的PHP函数 "echo"(该函数会在后续的文章中进行说明) 在网页上输出文本 "Hello World!":
php
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
注意:PHP语句以英文分号 (;) 结尾。
页面输出如下图所示:

如果文件内容仅仅包含PHP代码,最好在文件末尾删除 PHP 结束标记。这可以避免在PHP结束标记之后万一意外加入了空格或者换行符,会导致PHP开始输出这些空白,而脚本中此时并无输出的意图。
php
<?php
echo "Hello world";
// ... 更多代码
echo "Last statement";
// 脚本在此处结束,没有 PHP 结束标记
2、注释
PHP支持C、C++和Unix Shell风格的注释,代码中注释的语法如下所示:
php
// 这是一个单行注释
# 这也是一个单行注释
/* 这是一个
多行注释 */
在注释的使用上选择你习惯的方式即可。由于我个人主要是做Java,所以我之后的文章单行注释会采用 // ,多行注释会使用 /* */,在此做一下说明。
二、变量
1、变量的声明
PHP中的变量用一个美元符号( **** )后面跟变量名来表示。 **变量名是区分大小写的**。
变量可以有一个简短的名称(如 x 和 y)或更具描述性的名称( age, carname, total_volume)。
PHP 变量的命名规则:
- 变量以 $ 符号开头,后跟变量变量名
- 必须以字母或下划线字符开头
- 变量名不能以数字开头
- 变量名只能包含字母数字字符和下划线(A−z、0−9 和 _ )
- 变量名区分大小写(age 和 AGE 是两个不同的变量)
注意:PHP的变量是以 "$" 符号开头,这一点尤其要注意,因为在其它的编程语言中,如Java、C、Python中,变量是没有明确以特定符号作为开头的,所以这一点需要额外注意。
变量声明示例:
php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var"; // 输出 "Bob, Joe"
$4site = 'not yet'; // 非法变量名;以数字开头
$_4site = 'not yet'; // 合法变量名;以下划线开头
$i站点is = 'mansikka'; // 合法变量名;可以用中文
2、变量的作用域
变量的作用域即它定义的上下文背景(也就是它的生效范围,可被引用/使用的位置)。
PHP有三种不同的变量作用域:
- local:局部变量
- **global:**全局变量
- **static:**静态变量
2.1、全局和局部作用域
在函数外部声明的变量具有全局作用域,并且只能在函数外部访问。这一点是需要注意的,因为在其它编程语言中,函数内部是可以访问全局变量的。
示例:
php
$x = 5; // 全局作用域
function myTest() {
// 在此函数中使用 x 将生成错误
echo "<p>函数内的变量 x 是:$x</p>";
}
myTest();
页面显示:

可以看到,程序执行出错。错误信息显示:$x 变量是未定义的。通过这个示例展示了全局变量在函数内部是无法访问的。
在函数内部声明的变量具有局部作用域,并且只能在该函数内部访问。
php
function myTest() {
$x = 5; // 局部作用域
echo "<p>函数内的变量 x 是:$x</p>";
}
myTest();
// 在函数外部使用 x 将生成错误
echo "<p>函数外的变量 x 是:$x</p>";
页面显示:

通过程序执行结果可以看到,局部变量在函数内部是可以访问到的,但是在函数外部就无法访问到了,并且会报错,显示的错误信息为变量未定义。
2.2、global关键字
上文中说到,全局变量只能在函数外部声明和在函数外部访问,那么如果要在函数内部访问全局变量应该如何做呢?
global 关键字用于从函数内部访问全局变量。使用方法也很简单,只需要在函数内部需要访问的全局变量前使用global关键字即可。
示例:
php
$x = 2;
$y = 5;
function myTest() {
global $x, $y; // $x,$y 为全局变量,如果要在内部函数中访问,则需要在变量前使用 global 关键字
$y = $x * $y;
}
myTest();
echo $y; // 输出 10
在函数内部除了使用global关键字访问全局变量外,还有一种方法可以用于在函数内访问全局变量,该方法就是使用 **$GLOBALS[index]**数组。
PHP将所有全局变量存储在名为 **$GLOBALS[index]**的数组中。index 保存变量的名称。该数组可以在函数内部访问,并且可以用于直接更新全局变量。
上面的示例可以改写为:
php
$x = 2;
$y = 5;
function myTest() {
$GLOBALS['y'] = $GLOBALS['x'] * $GLOBALS['y'];
}
myTest();
echo $y; // 输出 10
2.3、静态变量
变量范围的另一个重要特性是静态变量。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。为此,请在首次声明变量时使用static关键字。
示例:
php
function test()
{
static $a = 0;
echo $a;
$a++;
}
test(); // 输出0
test(); // 输出1
test(); // 输出2
变量 a 仅在第一次调用test()函数时被初始化,之后每次调用test()函数都会输出 a 的值并加一。
注意:该变量仍然是函数的局部变量。
三、数据类型
PHP是动态类型语言,这意味着默认不需要指定变量的类型,因为会在运行时确定。PHP 支持以下数据类型:
- 字符串(String)
- 整型(Integer)
- 浮点型(Float)
- 布尔类型(Boolean)
- 数组(Array)
- 对象(Object)
- NULL
- 资源类型(Resource)
由于PHP是动态语言,所以在声明变量的时候不需要指定数据类型,如果要想知道变量的数据类型是什么,可以使用 var_dump() 函数来获取对象的数据类型。
示例:
php
$x = 5;
var_dump($x);
页面显示:

1、String 字符串
一个字符串就是由一系列的字符组成,其中每个字符等同于一个字节。
字符串引号内可以包含任何文本,引号可以是单引号或双引号。
示例:
php
$x = "我是双引号内的字符串";
$y = '我是单引号内的字符串';
echo $x;
echo "<br>";
echo $y;
如果字符串是包围在双引号(")中, PHP 将对以下特殊的字符进行解析:

2、Integer 整型
整型数据类型是整数,范围在 -2,147,483,648 到 2,147,483,647 之间。可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。
要使用八进制表达,数字前必须加上 0(零)。 PHP 8.1.0 起,八进制表达也可以在前面加上 0o 或者 0O 。要使用十六进制表达,数字前必须加上 0x。要使用二进制表达,数字前必须加上 0b。
示例:
php
$a = 1234; // 十进制数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
3、Float 浮点型
浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义:
php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
4、Boolean 布尔类型
布尔类型仅有两个值,用于表达真值,不是 true 就是 false。
要指定一个布尔类型的值,使用常量 true 或 false。两个都不区分大小写。
示例:
php
$foo = True; // 设置 $foo 为 TRUE
5、Array 数组
数组可以在单个变量中存储多个值。
在下面的示例中,$cars 是一个数组。(数组的内容后续会有专门的篇章进行详细说明)
php
$cars = array("奔驰","宝马","奥迪");
6、Object 对象
类和对象是面向对象编程的两个主要方面,该内容会在后续的面向对象篇章中进行详细说明。在此只需要知道对象是PHP中的一种数据类型即可。
7、NULL
NULL是一种特殊的数据类型,它只有一个值:NULL。数据类型为NULL的变量是没有为其分配值的变量。
提示:如果变量已创建但未赋值,它将自动被赋值为NULL。也可以通过将值设置为NULL来清空变量:
php
$x = "Hello world!";
var_dump($x);
$x = null;
var_dump($x);
8、Resource 资源类型
资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。这是官方文档中的解释,该数据类型是我在Java编程语言中不曾见过的,所以只看定义是不明白它是做什么的,而我现在也觉得没有必要花时间在该数据类型上面,所以决定先放置,以后用到了再说。如果阅读文章的您对该类型有了解的话,可以在评论区告诉我,在此表示感谢。
9、更改数据类型
由于PHP是动态语言,所以我们可以随时改变变量的数据类型,只需要对该变量赋值不同数据类型的值就可以改变变量的数据类型。
示例:
php
$x = 5; // 此时变量 $x 为整型
var_dump($x);
$x = "Hello"; // 此时变量 $x 的数据类型为字符串型
var_dump($x);
页面显示:

**动手是掌握语法的捷径!**本文介绍了PHP的变量声明与基础数据类型,建议在phpStudy中逐行测试文中代码。