php引入外部文件主要用include、require及其_once变体,区别在于错误处理(warning/fatal error)和重复加载控制(_once防重复定义),推荐用__dir__拼接路径,require_once最常用且安全。

PHP 引入外部 PHP 文件主要用 include、require 及其带 _once 后缀的变体,核心区别在于错误处理方式和重复加载控制。
基础语法与四类引入方式
它们都支持相对路径或绝对路径(推荐使用 __DIR__ 拼接,避免路径问题):
-
include 'file.php':文件不存在或出错时发出Warning,脚本继续执行 -
require 'file.php':文件出错时触发Fatal Error,立即终止脚本 -
include_once 'file.php':同 include,但已加载过的文件不再重复包含(防重复定义函数/类) -
require_once 'file.php':同 require,也保证只加载一次(最常用,推荐用于类、配置、函数库)
正确拼接路径避免报错
直接写 include 'config.php' 容易因工作目录变化失败。稳妥做法是基于当前文件位置定位:
-
include __DIR__ . '/config.php';(推荐,__DIR__是当前文件所在目录的绝对路径) -
require_once __DIR__ . '/../lib/database.php';(跨目录引用也清晰可靠) - 避免用
$_SERVER['DOCUMENT_ROOT']或相对路径如../config.php,易受执行入口影响
引入后如何使用内容
被引入文件中定义的变量、函数、类会直接进入当前作用域:
- 若
functions.php中有function helper() { ... },引入后可直接调用helper() - 若
config.php中有$db_host = 'localhost';,引入后可直接使用$db_host - 类文件(如
User.php)建议用require_once,确保类只定义一次,之后可用new User()
常见注意事项
这些细节容易引发隐性问题:
- 引入文件末尾不要加
?>(PHP 结束标签),避免意外输出空白字符导致 header 错误 -
include/require返回值:成功时返回引入文件中最后一行表达式的值(极少使用),失败时返回false - 不支持远程 URL(如
include 'http://xxx.com/file.php'),除非allow_url_include=On(极不安全,禁用) - 自动加载(autoload)更适合大型项目,
require_once仍是小到中型项目的主力方式
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











