通过阅读以下链接,我知道include
和require
之间的区别;
Require VS Include
但如果有PHP文件;
dbconenction.php
,用于从数据库中获取一些信息。dbconenction.php
包含或要求的所有自定义函数,因为在某些函数中存在查询)dbconenction.php
包含或要求)dbconenction.php
和class.phpmailer.php
包含或要求的文件)所以在process.php
我必须包含或要求所有文件,例如dbconenction.php
,funtions.php
,config.php
,email-functions
和class.phpmailer.php
。< / p>
我的问题;
dbconenction.php
中已存在PHP included or required files
,我是否真的需要在process.php
中加入或要求?{/ li>
class.phpmailer.php
中未包含email-functions.php
,那么process.php
中哪个文件首先出现? class.phpmailer.php
或email-functions.php
dbconenction.php
和index.php
旁边的任何上述文件中不包含或要求process.php
,那么哪个文件首先出现,哪个文件变量是依赖的在其他PHP文件上; 我问的原因是因为我在php中使用完全自定义解决方案开发了多个站点但是这个PHP文件结构总是让我烦恼,在某些情况下,一个站点的PHP文件结构根本无法在其他站点中运行,有时甚至没有错误只是把我放在空白页面上。
答案 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.php
或require_once
- 那么您大部分都是安全的......
绝对关注MVC和MVC框架 - 并学习如何编写面向对象 - - 它将为您节省大量的时间,麻烦,听到撕裂和心痛,以维护您的项目 - 更不用说它了'这将帮助您不必担心这些问题 -
有一个非常小的名为'php-login' - 或者,看起来现在被称为“巨大的” - 这可以让你有一个非常简单的开始,如何更有条理地/有组织/有组织地做这些事情 -
祝你好运!〜答案 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/