PHP语法基础篇:变量与数据类型
- 基本语法结构:PHP文件格式、注释写法
- 变量使用:变量声明、命名规范、作用域初探
- 数据类型:整型、浮点型、字符串、布尔型等数据类型的特性和用法
目录
一、基本语法
1、文件格式
2、注释
二、变量
1、变量的声明
2、变量的作用域
2.1、全局和局部作用域
2.2、global关键字
2.3、静态变量
三、数据类型
1、String 字符串
2、Integer 整型
3、Float 浮点型
4、Boolean 布尔类型
5、Array 数组
6、Object 对象
7、NULL
8、Resource 资源类型
9、更改数据类型
一、基本语法
1、文件格式
PHP脚本在服务器上执行,并将纯HTML结果发送回浏览器,PHP脚本可以放置在文档中的任何位置。
PHP 脚本以 <?php 开头,以 ?> 结尾:
<?php
// PHP 代码写在这里
?>
PHP文件的默认文件扩展名是 ".php"。
PHP文件通常包含HTML标签和一些PHP脚本代码。
下面是一个简单的PHP文件示例,其中包含一段PHP脚本,该脚本使用内置的PHP函数 "echo"(该函数会在后续的文章中进行说明) 在网页上输出文本 "Hello World!":
<!DOCTYPE html>
<html><body><h1>My first PHP page</h1><?phpecho "Hello World!";?></body>
</html>
注意:PHP语句以英文分号 (;) 结尾。
页面输出如下图所示:
如果文件内容仅仅包含PHP代码,最好在文件末尾删除 PHP 结束标记。这可以避免在PHP结束标记之后万一意外加入了空格或者换行符,会导致PHP开始输出这些空白,而脚本中此时并无输出的意图。
<?php
echo "Hello world";// ... 更多代码echo "Last statement";// 脚本在此处结束,没有 PHP 结束标记
2、注释
PHP支持C、C++和Unix Shell风格的注释,代码中注释的语法如下所示:
// 这是一个单行注释# 这也是一个单行注释/* 这是一个
多行注释 */
在注释的使用上选择你习惯的方式即可。由于我个人主要是做Java,所以我之后的文章单行注释会采用 // ,多行注释会使用 /* */,在此做一下说明。
二、变量
1、变量的声明
- 变量以 $ 符号开头,后跟变量变量名
- 必须以字母或下划线字符开头
- 变量名不能以数字开头
- 变量名只能包含字母数字字符和下划线(A−z、0−9 和 _ )
- 变量名区分大小写($age 和 $AGE 是两个不同的变量)
注意:PHP的变量是以 "$" 符号开头,这一点尤其要注意,因为在其它的编程语言中,如Java、C、Python中,变量是没有明确以特定符号作为开头的,所以这一点需要额外注意。
变量声明示例:
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var"; // 输出 "Bob, Joe"$4site = 'not yet'; // 非法变量名;以数字开头
$_4site = 'not yet'; // 合法变量名;以下划线开头
$i站点is = 'mansikka'; // 合法变量名;可以用中文
2、变量的作用域
- local:局部变量
- global:全局变量
- static:静态变量
2.1、全局和局部作用域
在函数外部声明的变量具有全局作用域,并且只能在函数外部访问。这一点是需要注意的,因为在其它编程语言中,函数内部是可以访问全局变量的。
示例:
$x = 5; // 全局作用域function myTest() {// 在此函数中使用 x 将生成错误echo "<p>函数内的变量 x 是:$x</p>";
}
myTest();
页面显示:
可以看到,程序执行出错。错误信息显示:$x 变量是未定义的。通过这个示例展示了全局变量在函数内部是无法访问的。
在函数内部声明的变量具有局部作用域,并且只能在该函数内部访问。
function myTest() {$x = 5; // 局部作用域echo "<p>函数内的变量 x 是:$x</p>";
}
myTest();// 在函数外部使用 x 将生成错误
echo "<p>函数外的变量 x 是:$x</p>";
页面显示:
通过程序执行结果可以看到,局部变量在函数内部是可以访问到的,但是在函数外部就无法访问到了,并且会报错,显示的错误信息为变量未定义。
2.2、global关键字
上文中说到,全局变量只能在函数外部声明和在函数外部访问,那么如果要在函数内部访问全局变量应该如何做呢?
global关键字用于从函数内部访问全局变量。使用方法也很简单,只需要在函数内部需要访问的全局变量前使用global关键字即可。
示例:
$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 保存变量的名称。该数组可以在函数内部访问,并且可以用于直接更新全局变量。
上面的示例可以改写为:
$x = 2;
$y = 5;function myTest() {$GLOBALS['y'] = $GLOBALS['x'] * $GLOBALS['y'];
}myTest();
echo $y; // 输出 10
2.3、静态变量
变量范围的另一个重要特性是静态变量。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。为此,请在首次声明变量时使用static关键字。
示例:
function test()
{static $a = 0;echo $a;$a++;
}test(); // 输出0
test(); // 输出1
test(); // 输出2
变量 $a 仅在第一次调用test()函数时被初始化,之后每次调用test()函数都会输出 $a 的值并加一。
注意:该变量仍然是函数的局部变量。
三、数据类型
- 字符串(String)
- 整型(Integer)
- 浮点型(Float)
- 布尔类型(Boolean)
- 数组(Array)
- 对象(Object)
- NULL
- 资源类型(Resource)
$x = 5;
var_dump($x);
页面显示:
1、String 字符串
一个字符串就是由一系列的字符组成,其中每个字符等同于一个字节。
字符串引号内可以包含任何文本,引号可以是单引号或双引号。
示例:
$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。
示例:
$a = 1234; // 十进制数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
3、Float 浮点型
浮点型(也叫浮点数 float,双精度数 double 或实数 real)可以用以下任一语法定义:
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
4、Boolean 布尔类型
布尔类型仅有两个值,用于表达真值,不是 true 就是 false。
要指定一个布尔类型的值,使用常量 true 或 false。两个都不区分大小写。
示例:
$foo = True; // 设置 $foo 为 TRUE
5、Array 数组
数组可以在单个变量中存储多个值。
在下面的示例中,$cars 是一个数组。(数组的内容后续会有专门的篇章进行详细说明)
$cars = array("奔驰","宝马","奥迪");
6、Object 对象
类和对象是面向对象编程的两个主要方面,该内容会在后续的面向对象篇章中进行详细说明。在此只需要知道对象是PHP中的一种数据类型即可。
7、NULL
NULL是一种特殊的数据类型,它只有一个值:NULL。数据类型为NULL的变量是没有为其分配值的变量。
提示:如果变量已创建但未赋值,它将自动被赋值为NULL。也可以通过将值设置为NULL来清空变量:
$x = "Hello world!";
var_dump($x);
$x = null;
var_dump($x);
8、Resource 资源类型
资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。这是官方文档中的解释,该数据类型是我在Java编程语言中不曾见过的,所以只看定义是不明白它是做什么的,而我现在也觉得没有必要花时间在该数据类型上面,所以决定先放置,以后用到了再说。如果阅读文章的您对该类型有了解的话,可以在评论区告诉我,在此表示感谢。
9、更改数据类型
由于PHP是动态语言,所以我们可以随时改变变量的数据类型,只需要对该变量赋值不同数据类型的值就可以改变变量的数据类型。
示例:
$x = 5; // 此时变量 $x 为整型
var_dump($x);$x = "Hello"; // 此时变量 $x 的数据类型为字符串型
var_dump($x);
页面显示:
动手是掌握语法的捷径!本文介绍了PHP的变量声明与基础数据类型,建议在phpStudy中逐行测试文中代码。