文章目录
一、PHP预定义常量
PHP 提供了许多预定义常量,这些常量在 PHP 脚本执行期间始终是可用的。它们通常用于提供关于 PHP 版本、操作系统、服务器软件等的信息。以下是一些常见的 PHP 预定义常量:
1. PHP 版本相关常量
__FILE__
: 当前文件的完整路径和文件名。__LINE__
: 当前行号。__DIR__
: 当前文件的目录。PHP_VERSION
: 当前 PHP 版本的字符串表示。PHP_MAJOR_VERSION
: 当前 PHP 版本的主版本号。PHP_MINOR_VERSION
: 当前 PHP 版本的次版本号。PHP_RELEASE_VERSION
: 当前 PHP 版本的发布号。PHP_EXTRA_VERSION
: 当前 PHP 版本的附加信息。
2. 操作系统和服务器软件相关常量
PHP_OS
: 运行 PHP 的操作系统名称。PHP_SAPI
: 服务器 API 的类型,例如 “apache2handler”、“cgi” 等。SERVER_SOFTWARE
: 服务器软件的名称和版本(由$_SERVER['SERVER_SOFTWARE']
提供)。
3. 布尔值和空值常量
true
: 布尔真值。false
: 布尔假值。null
: 一个特殊的值,表示变量没有值。
4. 错误处理相关常量
E_ERROR
: 致命的运行时错误。E_WARNING
: 运行时警告(非致命错误)。E_PARSE
: 解析错误。E_NOTICE
: 运行时通知。E_CORE_ERROR
: PHP 启动时的致命错误。E_CORE_WARNING
: PHP 启动时的警告(非致命错误)。E_COMPILE_ERROR
: 编译时致命错误。E_COMPILE_WARNING
: 编译时警告(非致命错误)。E_USER_ERROR
: 用户生成的错误消息。E_USER_WARNING
: 用户生成的警告消息。E_USER_NOTICE
: 用户生成的通知消息。E_STRICT
: 运行时通知,启用 PHP 的严格模式时发出。E_DEPRECATED
: 运行时通知,当使用已弃用的特性时发出。E_USER_DEPRECATED
: 用户生成的弃用警告。E_ALL
: 所有错误和警告(除E_STRICT
外)。
- 目录和文件路径常量
__DIR__
: 当前脚本所在的目录。DIRECTORY_SEPARATOR
: 目录分隔符(在 Windows 上是 “”,在 Unix/Linux 上是 “/”)。
- 无限大和无穷小常量
INF
: 正无穷大。-INF
: 负无穷大。NAN
: 表示非数字值的结果。
二、案例
PHP 预定义常量在 PHP 脚本中非常有用,它们提供了关于 PHP 环境、操作系统、文件路径等的有用信息。下面是一些使用 PHP 预定义常量的详细案例:
1. 获取当前脚本的路径和文件名
<?php
echo '当前脚本的路径和文件名: ' . __FILE__ . PHP_EOL;
echo '当前脚本所在的目录: ' . __DIR__ . PHP_EOL;
?>
在这个例子中,__FILE__
常量会输出当前脚本的完整路径和文件名,而 __DIR__
常量会输出当前脚本所在的目录。
2. 检查 PHP 版本
<?php
echo '当前 PHP 版本: ' . PHP_VERSION . PHP_EOL;
echo 'PHP 主版本号: ' . PHP_MAJOR_VERSION . PHP_EOL;
echo 'PHP 次版本号: ' . PHP_MINOR_VERSION . PHP_EOL;
?>
这里使用了 PHP_VERSION
、PHP_MAJOR_VERSION
和 PHP_MINOR_VERSION
常量来获取 PHP 的版本信息。
3. 获取操作系统信息
<?php
echo '当前操作系统: ' . PHP_OS . PHP_EOL;
?>
PHP_OS` 常量用于输出当前 PHP 运行的操作系统名称。
4. 错误处理
<?php
error_reporting(E_ALL & ~E_NOTICE); // 报告所有错误,除了通知
ini_set('display_errors', 1); // 显示错误
// 故意制造一个错误
echo $undefinedVariable; // 这将导致一个未定义变量的错误
?>
在这个例子中,E_ALL
和 E_NOTICE
常量用于控制错误报告级别。通过组合这些常量,我们可以定制 PHP 报告哪些类型的错误。
5. 目录分隔符
<?php
$path = 'path' . DIRECTORY_SEPARATOR . 'to' . DIRECTORY_SEPARATOR . 'file.txt';
echo '文件路径: ' . $path . PHP_EOL;
?>
在这个例子中,DIRECTORY_SEPARATOR
常量用于构建跨平台的文件路径字符串。在 Windows 上,它将是 “”,而在 Unix/Linux 上,它将是 “/”。
6. 无穷大和无穷小
<?php
$positiveInfinity = INF;
$negativeInfinity = -INF;
$notANumber = NAN;
echo '正无穷大: ' . $positiveInfinity . PHP_EOL;
echo '负无穷大: ' . $negativeInfinity . PHP_EOL;
echo '非数字值: ' . $notANumber . PHP_EOL;
// 检查一个数是否为无穷大或无穷小
if (is_infinite($positiveInfinity)) {
echo '$positiveInfinity 是无穷大.' . PHP_EOL;
}
if (is_nan($notANumber)) {
echo '$notANumber 是非数字值.' . PHP_EOL;
}
?>
在这个例子中,INF
、-INF
和 NAN
常量分别用于表示正无穷大、负无穷大和非数字值。我们还使用了 is_infinite()
和 is_nan()
函数来检查一个数是否为无穷大或非数字值。