如何避免在 PHP 中使用多个 include 或 require?

How to avoid using multiple include or require in PHP?

例如,假设我正在使用名为 "alpha" 的在线可用库。该库有一个名为 Authenticate.php 的文件,我需要将其包含在每个文件中才能使用该库。

例如:

for login.php
<?php
include 'Authenticate.php';
include 'Everything.php'; 
sac::forceAuthentication();
<html>
<head>
    <title>Example</title>
</head>
<body>
    <h1>Authentication Succeeded</h1>
</body></html>
?>

for logout.php  
<?php
include 'Authenticate.php';
include 'Everything.php';
sac::logout();
<html>
<head>
    <title>Example</title>
</head>
<body>
    <h1>Logout Successful</h1>
</body></html>
?>

如您所见,我需要在所有文件中包含 Authenticate.php 才能使用 Authenticate.php

的功能

有没有办法通过在 Everything.php 文件中包含 Authenticate.php 来避免这样做?

为了避免这种情况,我正在考虑以下可能的解决方案,请告诉我这是否是有效的方法。

我计划通过执行以下操作在 Everything.php 中包含 Authenticate.php 的以下功能

class Everything {

    public function Login(){
        include_once('Authenticate.php');
        sac::forceAuthentication();

    }
   public function logout(){
        include_once('Authenticate.php');
        sac::logout();
   }
 // Some other functions of everything.php
}

注意:Authenticate.php 有许多我不需要的其他功能,我只想使用选定的功能并包含在 Everything.php

提前致谢。

include 放在函数内部可能不是一个好主意。如果它分配了应该是全局的变量,它们将只在该函数的范围内,不再是全局的。

您可以创建包含 Authenticate.phpEverything.php 的文件。将其命名为 AuthEverything.php,它将包含:

include_once('Authenticate.php');
include_once('Everything.php');

然后将 include_once('AuthEverything.php') 放入您的 login.phplogout.php