PHP包含还是要求?哪个文件首先出现在哪个文件之后?

时间:2015-07-13 15:15:41

标签: php

通过阅读以下链接,我知道includerequire之间的区别;
Require VS Include
但如果有PHP文件;

  1. dbconenction.php(包含所有与数据库相关的代码)
  2. index.php(其中包含表单和dbconenction.php,用于从数据库中获取一些信息。
  3. funtions.php(其中包含dbconenction.php包含或要求的所有自定义函数,因为在某些函数中存在查询)
  4. site.php(其中包含从数据库中获取的所有网站设置,dbconenction.php包含或要求)
  5. config.php(一个手动添加了一些变量的文件)
  6. email-functions.php(包含电子邮件模板并发送电子邮件功能且dbconenction.phpclass.phpmailer.php包含或要求的文件)
  7. class.phpmailer.php
  8. process.php(我处理表单,变量,函数和发送电子邮件)
  9. 所以在process.php我必须包含或要求所有文件,例如dbconenction.phpfuntions.phpconfig.phpemail-functionsclass.phpmailer.php。< / p>

    我的问题;

    1. 如果其他dbconenction.php中已存在PHP included or required files,我是否真的需要在process.php中加入或要求?{/ li>
    2. 如果我在class.phpmailer.php中未包含email-functions.php,那么process.php中哪个文件首先出现? class.phpmailer.phpemail-functions.php
    3. 如果我在dbconenction.phpindex.php旁边的任何上述文件中不包含或要求process.php,那么哪个文件首先出现,哪个文件变量是依赖的在其他PHP文件上;
    4. 我问的原因是因为我在php中使用完全自定义解决方案开发了多个站点但是这个PHP文件结构总是让我烦恼,在某些情况下,一个站点的PHP文件结构根本无法在其他站点中运行,有时甚至没有错误只是把我放在空白页面上。

3 个答案:

答案 0 :(得分:3)

作为一般的经验法则,我几乎总是使用require - include将允许您没有错误的空白页面 (说到这些,ini_set("display_errors", "On"); error_reporting(-1);将在未来为你提供帮助

但要进一步阐述你的问题:

1)。使用dbconnection.php - 您最好使用require_once - 这听起来像(因为您开发了多个具有不同需求的网站等) - 使用require_once这样做是最合适的 - 因为这样你就不必担心它require的位置 - 它只会加载一次,即使你多次require - 当然,您应该使用init.php路线 - 这个文件可以完成所有配置并包含 - 这将使您的代码在一段时间内保持清洁......

2)。这取决于! 如果class.phpmailer.php除了定义一个类之外什么都不做 - 如果email-functions.php只定义了函数,那么首先包含哪个函数并不重要,只要它们都被{{{{ 1}}被调用 - 否则,如果email-function立即与email-function.php一起使用 - 那么您首先需要包含该类 -

3)。我不能强调这个: 你不应该在PHP文件之间传递变量 - 你应该避免全局变量 - 但是,如果您使用的是class.phpmailer.phprequire_once - 那么您大部分都是安全的......

绝对关注MVC和MVC框架 - 并学习如何编写面向对象 - - 它将为您节省大量的时间,麻烦,听到撕裂和心痛,以维护您的项目 - 更不用说它了'这将帮助您不必担心这些问题 -

有一个非常小的名为'php-login' - 或者,看起来现在被称为“巨大的” - 这可以让你有一个非常简单的开始,如何更有条理地/有组织/有组织地做这些事情 -

http://www.php-login.net/

祝你好运!〜

答案 1 :(得分:0)

你可以拥有一个包含你需要的所有包含的init.php。

了解详情:MVC

答案 2 :(得分:0)

不要做任何这些事情,请使用自动加载器http://php.net/manual/en/language.oop5.autoload.php

甚至更好,使用像Symfony http://symfony.com这样的适当框架。我很久没有想过这样的事了。跟上最新的最佳技术,避免处理这种乏味的麻烦。

阅读此http://webdeveloper.gdemolished.com/stop-building-shitty-php-web-applications/