1

我想知道,我在 PHP 中有一些函数不是每次都调用,但每次加载时仍包含在我的文件中。即使您当时没有调用该函数,它是否仍然运行代码?我问的原因是,我的函数中的代码在 CPU 方面运行起来很昂贵,而且我不会每次都调用它们,并且想确保如果没有调用它们,它们不会在函数中运行代码。

谢谢

4

1 回答 1

3

简而言之,未显式调用的函数不会运行。但是,这里简要介绍一下我们使用我发现的函数的内容和原因。

函数是我们将程序的一部分锁定到其中的“黑匣子”。函数背后的想法是它划分程序的一部分,特别是函数中的代码具有一些有用的属性:

  1. 它执行一些定义明确的任务,这将对程序的其他部分有用。

  2. 它也可能对其他程序有用;也就是说,我们也许可以重用它(并且不必重写它)。

  3. 程序的其余部分不必知道函数是如何实现的细节。这可以使程序的其余部分更容易思考。

  4. 该函数很好地完成了它的任务。它可能被编写为比调用它的第一个程序所要求的多一点,并期望调用程序(或其他一些程序)以后可能需要额外的功能或改进的性能。(重要的是完成的函数做好它的工作,否则可能不愿意调用它,因此它可能无法实现可重用的目标。)

  5. 通过将执行有用任务的代码放入一个函数中,并在程序中必须执行该任务的其他部分简单地调用该函数,程序的其余部分变得更加清晰:而不是有一些大的、复杂的、困难的——为了理解在执行任务的任何地方重复的一段代码,我们有一个简单的函数调用,函数的名称提醒我们正在执行哪个任务。

  6. 由于程序的其余部分不必知道函数是如何实现的细节,程序的其余部分并不关心以后是否以某种不同的方式重新实现该函数(只要它继续执行它的当然,同样的任务!)。这意味着可以重写程序的一部分,以提高性能或添加新功能(或简单地修复错误),而无需重写程序的其余部分。

函数可能是我们对抗软件复杂性的最重要武器。您需要了解何时适合将处理分解为函数(以及何时不适合),以及如何设置函数接口以最好地实现上述质量:可重用性、信息隐藏、清晰性和可维护性。

http://www.eskimo.com/~scs/cclass/notes/sx5.html

于 2013-02-28T13:52:37.057 回答