1

在 PHP 中重用代码的“包含文件”和“函数”有什么区别?

我可以列举 1 个不同之处:使用函数时,调用者脚本无权访问函数本地变量,但在包含包含脚本时,可以访问包含脚本的本地变量。

其他的区别是什么?

什么时候应该使用“函数”,什么时候应该使用“包含文件”?

对于 DB 连接,通常使用哪一个?

4

2 回答 2

2

Functions are callable blocks of code. Usually created by the developer when that certain block of code is used multiple times. Instead of writing the same code in multiple places, you create a function and call it when needed.

Also, some developers create functions to make a certain task distinct in the code for readability and understandability. They use functions as "labels" as to what a certain block of code does. For example, I'd create a readFile() function for a certain block of code that reads files.

Includes on the other hand "merges" a file into the calling file as if it were coded into that file. This makes whatever was declared in the other file available in the current file in the scope that called it.


As for what to use, you use both.

To separate DB connection code from the current file, I'd create a DB Class in another file (like dbcon.php) containing all the properties and methods (functions) needed to interface with the DB.

Then, in the file that needs the DB connection (like index.php), it should use include to "merge-in" the file containing the DB Class for index.php to use the class definition.

于 2012-11-11T09:41:22.900 回答
1

这似乎是一个显而易见的问题,但无论如何分享我们的经验还是很有趣的。

配置文件(即常量)的包含应该使用require_once. 因为没有它,您的系统将无法工作(需要),并且应该只包含一次(一次)。所以... class, DB configuration,constants和 core 文件应该被插入require_once而不是 with include,因为如果某些文件丢失,它会抛出一个致命错误并停止执行,从而防止错误链。

那么,我们什么时候可以使用include?

include应该用于inclusion更复杂的部分代码(例如包含其他内容)以及部分代码对您的系统来说不是强制性或必不可少的。例如,您可以考虑为视图包含一个模块。(包括一个处理 tpl 文件的 php 文件)。当我与其他开发人员在系统上工作时,我在想:有些部分是共享的(即数据库),有些部分是本地的。如果我修改共享部分中的某些内容导致其他开发人员包含失败,则不会对他们造成致命错误。(这只是一个例子)

现在:我应该什么时候使用function

当您编写大量函数时,您可以使用包含的一个文件(或者,更好的是,必需的)并在需要时调用此函数之一。除了所有函数中的代码都被封装,防止与其他代码部分发生恼人的冲突(相信我:它经常发生,而且并不总是很容易找到错误)

好处:一个文件用于许多功能,并且所有代码都封装了。

于 2012-11-11T10:08:17.957 回答