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

时间:2016-09-15 00:58:18

标签: php wrapper

例如,假设我正在使用名为" 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中

提前谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

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

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