【问题标题】:PHP "Global" includePHP“全球”包括
【发布时间】:2011-08-09 07:44:16
【问题描述】:

哦, 我正在编写一个小型 PHP 应用程序,使用一个单独的 config.php 文件和一个 functions.php,其中包含我所有的自定义函数,我将在应用程序中使用。现在,我真的必须在每个函数中包含 config.php,还是有办法一步将所有函数的配置包含在文件中?

谢谢。

【问题讨论】:

标签: php


【解决方案1】:

当您要访问其他 php 文件中的方法和类时,您必须使用 require、require_once、include 或 include_once,除非您使用某种框架。

尝试构建一个包含所有内容的全局文件,这样你就必须包含唯一的文件。

【讨论】:

【解决方案2】:

创建一个包含所有require(或include)语句的global.php,并简单地包含该文件。

【讨论】:

    【解决方案3】:

    执行此操作的非常标准的方法是从您的 index.php 文件中包含它。您的 index.php 应该包括您的其他页面,例如:

    include 'config.php';
    include 'functions.php';
    $page = isset($_REQUEST['page']) ? $_REQUEST['page'] : 'home';
    
    switch($page)
    {
        case 'home':           break;
        case 'mail':           break;
        case 'contact':        break;
        default:
            $page = 'home';
    }
    
    include("$page.php");
    

    因此,在 index.php 中,您可以包含任何您想要的页面。

    【讨论】:

    • 我通常不会说什么,但为什么要投反对票:?这是相当标准的,我实际上是从我的一个项目中粘贴的:/
    • 不知道为什么人们会这样做......我认为这是因为问题没有提到 index.php
    • 我在发布后大约 5 秒得到了 -1,所以你可以想象:P
    • 我没有投票,但我有一个题外话的问题 - 您从哪里了解到这些标准方法?我很好奇,因为我是 PHP 新手,你的代码对我来说看起来不错。
    • 我真的不记得我第一次读到的地方,但多年来我一直在做一些事情。这是我一直使用的一种技术来包含文件并防止文件包含攻击(它是具有检查开关的安全代码 - 必须在那里)。然后,我将有一个控制器来处理模型的逻辑,几乎是一个 MVC 模型。简而言之,控制器类似于 profile.php,模型是 profile.class.php,视图是(自定义和快速)模板系统。
    【解决方案4】:

    将您的函数转换为类的方法,您将永远不会回头。

    <?php 
     class MyClass { 
       var $config;     
    
       function __construct($config) {
         $this->config = $config;
       }
    
       function myFunc($myArg) {
         return $myArg * $this->config['someSetting'];
       }
    }
    

    问候,

    /t

    【讨论】:

    • 同意,不过还是需要加入
    【解决方案5】:

    你也可以在php.ini 中使用auto_prepend_file 来表示懒惰。或通过 .htaccess:

    php_value auto_prepend_file /home/www/host1235/htdocs/lib/config.php
    

    但如果您的应用程序是连贯的,这确实是一个选择,所有脚本都需要该配置文件。否则,需要为每个目录再次取消设置此选项。

    【讨论】:

      猜你喜欢
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-11
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多