锦州市网站建设_网站建设公司_移动端适配_seo优化
2026/1/22 16:27:43 网站建设 项目流程

基本语法

PHP 标记

PHP 代码可以嵌入 HTML 中使用,为了区分 PHP 代码和 HTML 代码,需要使用 PHP 标记对 PHP 代码进行标识,PHP 的标记分为标准标记和短标记。

PHP 标记的基本用法:

<?php 代码块 ?> <? 代码块 ?> // 不推荐使用,需要在php.ini中启用short_open_tag <?= 输出内容 ?>

示例:PHP 标记

入口页面(index.php):

<h1><?php echo "Hello PHP!" ?></h1> <h1><?= "Hello PHP!" ?></h1>

示例效果:


在 PHP 标记后面,如果没有除 PHP 以外的其他代码,标记末尾的 ?> 符号可以省略。

注释

在 PHP 开发中,为了方便开发人员阅读和维护代码,可以添加注释对代码进行解释说明。

单行注释的基本用法:

// ... # ...

多行注释的基本用法:

/* .... */

输出语句

PHP 提供了一系列的输出语句,常用的输出语句有 echo、print、print_r、var_dump 等。

echo 输出语句用于输出字符串,如果输出其他类型的数据,会自动转换成字符串。

echo 输出语句的基本用法:

echo "..."; echo "...", "...";

print 输出语句与 echo 输出语句类似,但 print 输出语句只能输出一个数据。

print 输出语句的基本用法:

print "...";

print_r 输出语句可以输出任意类型的数据,如字符串、数组等。

print_r 输出语句的基本用法:

print_r("...");

var_dump 输出语句不仅可以输出一个或多个任意类型的数据,还可以获取数据的类型和元素值。

var_dump 输出语句的基本用法:

var_dump("..."); var_dump("...", "...");

示例:输出语句

入口页面(index.php):

<?php echo "Hello echo<br>"; print "Hello print<br>"; print_r("Hello print_r<br>"); var_dump("Hello var_dump")

示例效果:


标识符

定义标识符(如变量名、函数名、类名、方法名等)需要遵循一定的规则:

  • 标识符只能由字母、数字、下划线以及 0x80-0xff 范围内(十六进制数值范围)的字符组成。
  • 标识符不能以数字开头。
  • 标识符用作变量名时,区分大小写。

关键字

在使用关键字时,需要注意关键字不能作为常量、函数名或类名使用。

随着 PHP 版本的更新,关键字也在不断变化,可以通过查阅 PHP 官方手册来获取最新的关键字列表。

变量、常量和表达式

变量

PHP 是弱类型语言,变量不需要实现声明,就可以直接进行赋值使用。

PHP 变量赋值分为传值赋值和引用赋值。

传值赋值是将等号右边的数据赋值给左边的变量。

传值赋值的基本用法:

$变量名 = 变量值;

示例:传值赋值

入口页面(index.php):

<?php $userName = "多仔"; $age = 18; echo "姓名:".$userName; // 使用.号拼接字符串 echo "<br>"; echo "年龄:".$age;

示例效果:


引用赋值时,如果其中的一个变量的值发生改变,则另一个变量的值也会发生改变。

引用赋值的基本用法:

$变量名 = &$要引用的变量名;

示例:引用赋值

入口页面(index.php):

<?php $userName = "多仔"; $age = 18; echo "姓名:".$userName; echo "<br>"; echo "年龄:".$age; echo "<br>"; // 引用赋值 $newAge = &$age; // 修改变量$age的值 $age = 81; // 变量$newAge的值随着变量$age的改变而改变 echo "年龄:".$newAge;

示例效果:


可变变量

PHP 提供了可变变量,可以在开发时动态地改变一个变量的名称,将另一个变量的值作为该变量的名称。

在使用可变变量时,变量的值要符合标识符规则,避免出现非法变量名的情况。

可变变量的基本用法:

$变量名 = $$变量名;

示例:可变变量

入口页面(index.php):

<?php $userName = "多仔"; $age = 18; $variableName = "userName"; // 相当于输出$userName echo "姓名:".$$variableName;

示例效果:


常量

在 PHP 中,常量的值始终保持不变,常量一旦被定义就不能被修改或重新定义。

常量的命名遵循标识符的命名规则,习惯上总是使用大写字母定义常量名称。

在 PHP 中定义常量,可以使用 define 函数或 const 关键字。

define 函数的基本用法:

define(常量名, 常量值);

const 关键字的基本用法:

const 常量名 = 常量值;

示例:常量

入口页面(index.php):

<?php define("HOST", "localhost"); define("PORT", "3306"); const USER = "root"; const PASSWORD = "root"; echo "HOST=", HOST, "<br>"; echo "PORT=", PORT, "<br>"; echo "USER=", USER, "<br>"; echo "PASSWORD=", PASSWORD, "<br>";

示例效果:


预定义常量

PHP 提供了预先定义好的常量来获取 PHP 中的信息。

PHP 中的基本预定义常量:

名称描述
FILE获取 PHP 文件的完整路径
LINE获取 PHP 文件中当前代码的行号
PHP_VERSION获取 PHP 的版本信息
PHP_OS获取当前 PHP 环境的操作系统类型
PHP_INT_MAX获取当前 PHP 环境中整型数的最大值
PHP_INT_SIZE获取 PHP 中整型数的字长
TRUE该常量是一个真值(true)
FALSE该常量是一个假值(false)
NULL该常量是一个空值(null)
E_ERROR表示运行时的致命性错误,值为 1
E_WARNING表示运行时的警告错误,值为 2
E_PARSE表示编译时的解析错误,值为 4
E_NOTICE表示编译时的题型信息,值为 8

示例:预定义常量

入口页面(index.php):

<?php echo "PHP版本号:", PHP_VERSION, "<br>"; echo "PHP文件路径:", __FILE__, "<br>";

示例效果:


表达式

表达式是 PHP 中非常重要的基石,任何有值的内容都可以理解为表达式。

PHP 的基本表达式:

<?php $a = 1; echo $a + 1; $a = $a + 4; echo $a + $b; echo PHP_VERSION;

数据类型

常用数据类型

PHP 支持 3 类数据类型,8 种数据类型。

名称
描述
标量类型bool布尔型值为 true/false,且不分大小写
int整型可用八进制、十进制、十六进制表示
在不同位数的操作系统中,取值范围不一样
当定义的整型数值大于系统的整型数所能表示的最大范围时,将会被自动转换为浮点数
float浮点型可用标准格式和科学计数法表示
string字符串型可用单引号、双引号、heredoc、nowdoc 表示
复合类型array数组支持单维和多维数组
object对象可以用来表示具体的实体或抽象的概念
特殊类型resource资源用于表示对外部资源的引用
外部资源可以是文件、图像、数据库连接等
NULL空值表示一个变量没有被赋予任何值

字符串数据类型

字符串是由连续的字母、数字或字符组成的字符序列。

在 PHP 中,可以使用单引号、双引号表示字符串。

  • 单引号字符串中的变量不会被解析。
  • 双引号字符串中的变量会被解析。

示例:字符串数据类型

入口页面(index.php):

<?php $number = 100; echo '$number=', $number; echo '<br>'; echo "$number=", $number;

示例效果:


当双引号字符串中包含变量时,可能会出现变量与字符串混淆的问题。

为了让 PHP 识别变量,可以使用 {} 符号将变量包裹起来,{} 符号中的内容会被识别成具体的变量。


示例:使用 {} 识别变量

入口页面(index.php):

<?php $ap = "test"; // 将$ap识别成一个变量 echo "{$ap}ple";

示例效果:


heredoc 和 nowdoc

在 PHP 中,heredoc 和 nowdoc 是两种特殊的字符串表示方式。

  • heredoc 允许在其中进行变量解析和使用特殊字符。
  • heredoc 中,位于开始标记和结束标记之间的变量可以被正常解析,变量不需要用连接符来拼接。
  • nowdoc 类似于 heredoc ,但它不会解析变量和特殊字符。
  • nowdoc 定义的变量不会被解析,会被原样输出。

使用 heredoc 定义字符串数据的基本用法:

>>>EOD // ... EOD;

使用 nowdoc 定义字符串数据的基本用法:

>>>'EOD' // ... EOD;

在使用 heredoc 和 nowdoc 时,需要注意:

  • 开始标记和结束标记使用相同的字符串,通常以大写字母来写。
  • 开始标记后不能出现空格或多余的字符。
  • 结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号。

heredoc 和 nowdoc 在处理大段的文本内容时非常有用,能使代码更加清晰易读。


示例:heredoc 和 nowdoc

入口页面(index.php):

<?php $name = "PHP"; $heredoc = <<<EOD <div> <h3>$name 是世界上最好的语言</h3> </div> EOD; echo $heredoc; $nowdoc = <<<'EOD' <div> <h3>$name 是世界上最好的语言</h3> </div> EOD; echo $nowdoc;

示例效果:


数据类型检测

为了检测数据类型是否符合预期,PHP 提供了一组 is_xxx 形式的内置函数用于检测数据类型。

数据类型检测的基本函数:

名称描述
is_bool($var)是否是布尔型
is_string($var)是否是字符串型
is_float($var)是否是浮点型
is_int($var)是否是整型
is_null($var)是否是空值
is_array($var)是否是数组
is_resource($var)是否是资源型
is_object($var)
是否是对象型
is_numeric($var)是否为数字或由数字组成的字符串

示例:数据类型检测

入口页面(index.php):

<?php var_dump(is_bool("1")); echo "<br>"; var_dump(is_numeric("1")); echo "<br>"; var_dump(is_string("1"));

示例效果:


自动数据类型转换

自动数据类型转换是指当参数与运算的两个数据类型不同时,PHP 会自动转换成相同的类型再进行运算。

自动转换成布尔型时:

  • 整型 0、浮点型 0、空字符串、字符串 0 转换成布尔型时,都会被转换成 false。
  • 其他数据转换成布尔型时,都会被转换成 true。

示例:自动转换成布尔型

入口页面(index.php):

<?php var_dump(0 == false); echo "<br>"; var_dump(0.0 == false); echo "<br>"; var_dump('' == false); echo "<br>"; var_dump("0" == false);

示例效果:


自动转换成整型时:

  • 当浮点型数据转换成整型时,将直接对浮点数向下取整。
  • 当布尔型数据转换成整型时,true 会被转换成整型 1,false 会被转换成整型 0。
  • 在 PHP 8 以前,当字符串型数据转换成整型时,若字符串以数字开始,则使用该数字,否则转换为 0。
  • 自 PHP 8 起,如果无法解释运算符前后的其中一个运算对象,则会抛出 TypeError。

示例:自动转换成整型

入口页面(index.php):

<?php var_dump(true + 1); echo "<br>"; var_dump(false + 1); echo "<br>"; var_dump("101PHP" + 1); echo "<br>"; var_dump("PHP101" + 1);

示例效果:


自动转换成字符串型时:

  • 当布尔值数据转换成字符串型时,true 会被转换成字符串型 1,false 会被转换成空字符串。
  • 当整型或浮点型数据转换成字符串型时,直接将数字转换成字符串形式。

示例:自动转换成字符串型

入口页面(index.php):

<?php var_dump("true => " . true); echo "<br>"; var_dump("false => " . false); echo "<br>"; var_dump(101 . "PHP"); echo "<br>"; var_dump(3.14 . "PHP");

示例效果:


强制数据类型转换

强制数据类型转换是将某个数据或变量转换成想要的数据类型。

强制数据类型转换的基本用法:

(目标数据类型) 变量或数据

示例:强制数据类型转换

入口页面(index.php):

<?php var_dump((boolean) -1); echo "<br>"; var_dump((integer) "hello"); echo "<br>"; var_dump((float)false); echo "<br>"; var_dump((string)101);

示例效果:


数据类型转换函数

PHP 提供了一系列数据类型转换函数,用于获取变量或数据的指定类型的值。

数据类型转换的基本函数:

名称描述
strval($var)获取字符串型的值
intval($var)获取整型的值
floatval($var)获取浮点型的值
boolval($var)获取布尔型的值

示例:数据类型转换

入口页面(index.php):

<?php var_dump(strval(false)); echo "<br>"; var_dump(intval("101")); echo "<br>"; var_dump(floatval("0")); echo "<br>"; var_dump(boolval("1"));

示例效果:


运算符

算数运算符

PHP 的基本算数运算符:

运算符描述运算符作用
+-
*/
%取模**幂运算

赋值运算符

PHP 的基本赋值运算符:

运算符描述运算符描述
=赋值+=加并赋值
-=减并赋值*=乘并赋值
/=除并赋值%取模并赋值
.=连接并赋值**=幂运算并赋值

比较运算符

PHP 的基本比较运算符:

运算符描述运算符描述
==等于!=不等于
<>不等于===全等
!==不全等>大于
>=大于等于<小于
<=小于等于

使用 PHP 的比较运算符时需要注意:

  • 对数据类型不相同对两个数据进行比较时,PHP 会自动将其转换成类型相同的数据再进行比较。
  • === 和 !== 运算符在进行比较时,不仅要比较数值是否相等,还要比较数据类型是否相同。
  • == 和 != 运算符在进行比较时,只比较数值是否相等。

三元运算符

三元运算符即三目运算符,用于实现简单的条件判断,根据条件表达式的结果执行不同的表达式。

三元运算符的基本用法:

条件表达式 ? 条件表达式成立时执行 : 条件表达式不成立时执行

逻辑运算符

PHP 的基本逻辑运算符:

运算符描述运算符描述
&&
!xor异或
andor

递增/递减运算符

PHP 基本的递增/递减运算符:

运算符描述运算符描述
++递增递减

使用 PHP 的递增/递减运算符时需要注意:

  • 递增/递减运算符只针对纯数字或字母(a-z、A-Z)进行运算。
  • 对于值为字母的变量,只支持递增操作。
  • 当操作数为布尔型类型的数据时,递增/递减操作对其值不产生影响。
  • 当操作数为 NULL 时,递增的结果为 1,递减不受影响。

字符串拼接运算符

PHP 提供了用于拼接两个字符串的运算符 . 符号。

当使用字符串拼接运算符拼接布尔型、整型、浮点型或 NULL 时,会被自动转换成字符串型。


示例:字符串拼接

入口页面(index.php):

<?php echo "Hello"."PHP";

位运算符

PHP 中的位运算符用于对二进制位(0 和 1)进行操作。

PHP 的基本位运算符:

运算符
名称描述
&按位与如果两个二进制位都为 1,则该位的运算结果为 1,否则为 0
按位或
~按位非如果二进制位时 0,则取反值 1。 如果二进制位时 1,则取反值 0
^按位异或如果两个二进制位相同,则该位的运算结果为 0,否则为 1
<<左移将所有二进制位向左移动 1 位,右边的空位补 0,左边移走的部分舍去
>>右移将所有二进制位向右移动 1 位,左边的空位根据原数的符号补位 0 或 1,原数是负数就补 1,原数是正数就补 0

示例:位运算符

入口页面(index.php):

<?php $m = 1; // 二进制为01 $n = 2; // 二进制为10 // 按位与 $mn_and = $m & $n; echo "按位与结果:" . $mn_and . "<br>"; // 按位或 $mn_or = $m | $n; echo "按位或结果:" . $mn_or . "<br>"; // 按位异或 $mn_xor = $m ^ $n; echo "按位异或结果:" . $mn_xor . "<br>"; // 按位取反 $m_not = ~$m; echo "按位取反结果:" . $m_not . "<br>"; $m = 3; // 左移 $m_left_shift = $m << 1; echo "左移结果:" . $m_left_shift . "<br>"; $m = 8; // 右移 $m_right_shift = $m >> 2; echo "右移结果:" . $m_right_shift . "<br>";

示例效果:


位运算可以用于优化一些特定的操作,例如在处理标志位、进行高效的位掩码操作或利用位移实现快速的乘除运算等场景中。

错误控制运算符

错误控制运算符用于在可能出现错误的表达式前使用,不会直接将错误显示给用户。

错误控制运算符的基本用法:

@表达式;

在 PHP8 中,错误控制运算符已经被弃用。

流程控制

分支结构

PHP 中的分支结构常用的有 if、if-else、if-elseif-else、switch-case。

if 语句的基本用法:

if(条件表达式) { // ... }

if-else 语句的基本用法:

if(条件表达式) { // ... } else { // ... }

if-elseif-else 语句的基本用法:

if(条件表达式) { // ... } elseif(条件表达式) { // ... } else { // ... }

switch-case 语句的基本用法:

switch(表达式) { case 值1: // ... break; case 值2: // ... break; // ... default: // ... }

循环结构

PHP 中的循环结构常用的有 while、do-while、for。

while 语句的基本用法:

while(循环条件) { // ... }

do-while 语句的基本用法:

do{ // ... } while(循环条件);

for 语句的基本用法:

for(初始化表达式; 循环条件; 操作表达式) { // ... }

跳转语句

PHP 中的跳转语句常用的有 berak、continue。

  • break 语句在循环语句中用于终止、跳出循环。
  • continue 语句在循环语句中用于结束本次循环,开始下一轮循环。

流程控制代替语句

在 HTML 模板中嵌入 PHP 代码时,流程控制替代语句是一种可读性更好的语法。

流程控制语句和流程控制替代语句的比较:

流程控制语句流程控制替代语句
if(条件表达式) {
// …
}
if(条件表达式):
// …
endif;
switch(表达式) {
// …
}
switch(表达式):
// …
endswitch;
while(循环条件) {
// …
}
while(循环条件):
// …
endwhile;
for(初始化表达式; 循环条件; 操作表达式) {
// …
}
for(初始化表达式; 循环条件; 操作表达式):
// …
endfor;

示例:流程控制替代语句

入口页面(index.php):

<h3>10以内的偶数列表</h3> <ul> <?php for ($i = 0; $i < 10; $i++) { if ($i % 2 == 0) { echo "<li>$i</li>"; } } ?> </ul> <h3>10以内的偶数列表</h3> <ul> <?php for ($i = 0; $i < 10; $i++): ?> <?php if($i % 2 == 0): ?> <li><?php echo $i ?></li> <?php endif; ?> <?php endfor; ?> </ul>

示例效果:


文件包含语句

include 和 require

include 语句和 require 语句都可以引入一个外部文件。

  • include 语句和 require 的用法类似。
  • 当引入外部文件出现错误时,icnlude 语句会发出警告信息,程序继续执行。
  • 当引入外部文件出现错误时,require 语句会抛出致命错误,程序停止运行。

使用 include 语句引入公共代码的基本用法:

include '完整路径文件名'; include('完整路径文件名');

使用 require 语句引入公共代码的基本用法:

require '完整路径文件名'; require('完整路径文件名');

示例:include 和 require

工具类(util.php):

<?php echo "这是工具类 util.php";

入口页面(index.php):

<?php include './util.php'; echo "<br>Hello PHP";

示例效果:


include_once 和 require_once

include_once 语句和 require_once 语句也可以引入一个外部文件。

  • 使用 include_once 语句和 require_once 语句引入外部文件时,PHP 会检查该文件是否在程序中已经被引入。
  • 如果该已经被引入,则外部文件不会被再次引入,避免重复引入同一个文件。

示例:include_once 和 require_once

入口页面(index.php):

<?php echo "<p>使用include引入util.php三次:</p>"; include './util.php'; echo "<br>"; include './util.php'; echo "<br>"; include './util.php'; echo "<br>"; echo "<p>使用include_once引入util.php三次:</p>"; // 上文已经引入util.php,此处不再重复引入 include_once './util.php'; echo "<br>"; include_once './util.php'; echo "<br>"; include_once './util.php';

示例效果:


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询