应要求“U一次”;“some file.php”;是否显示在文件顶部以外的任何位置?

应要求“U一次”;“some file.php”;是否显示在文件顶部以外的任何位置?,php,Php,下面的示例是否适合PHP的require_once构造 function foo( $param ) { require_once "my_file.php" ; // // do something here } 还是在文件的开头只包含require_once构造更合适 即使要包含的文件仅在函数的上下文中有用,但为了可读性和可维护性,是否最好在顶部包含该文件?可能您只在某些情况下需要包含的文件,如果它是一个大文件,如果您根本不需要它,您希望避免包含它。因此,我想你可以

下面的示例是否适合PHP的require_once构造

function foo( $param )
{
    require_once "my_file.php" ;
    //
    // do something here
}
还是在文件的开头只包含require_once构造更合适


即使要包含的文件仅在函数的上下文中有用,但为了可读性和可维护性,是否最好在顶部包含该文件?

可能您只在某些情况下需要包含的文件,如果它是一个大文件,如果您根本不需要它,您希望避免包含它。因此,我想你可以在
if-else
语句的一个分支中使用
require\u一次。就我个人而言,我将所有的
require_once
语句都放在文件的最上面,这样我就可以很容易地看到哪些文件包含在哪里,没有什么比那些隐藏的语句更糟糕的了,包括弄乱脚本。但是,如果您有几个大型必需脚本,而这些脚本仅是某些函数所必需的,那么从性能角度来看,将
require\u放入函数中一次就可以了,只需确保在页面顶部添加注释即可

<?php
//require_once "my_file.php" (see function foo)

function foo($param) {
  require_once "my_file.php";
}

如果你不想加载一个文件,除非它是需要的,那就通过查看更新的PHP。

这是一场宗教辩论

的PRO要求
在文件顶部包含
语句:
  • 依赖关系清楚地记录在一致可靠的地方

  • 提高可读性/可维护性

  • OP代码缓存更简单(尽管您可能认为这不会直接影响开发人员)

  • 的CONS要求
    在文件顶部包含
    语句:
  • 如果您正在执行某种动态运行时,包括(例如使用_autoload()),则不可能在文件顶部执行硬编码语句

  • 如果代码中只有一个执行路径使用include,那么每次都无条件地包含它是对资源的浪费

  • include
    require
    语句的长列表只是开发人员在编辑文件时必须滚动过去的噪音。当然,一长串的依赖项可以被看作是代码应该被分解成更小、更集中的部分的标志,因此,也许你可以将这一部分作为专业人员来处理,因为它会让代码的味道更加突出


  • 使用require_时,请记住这不是某个预处理器指令。require_once语句是在PHP运行代码时执行的,只有在执行过程中尚未包含特定脚本时才会执行

    例如:

    conf.php:

    <?php
    $maxAge = 40;
    ?>
    
    
    
    myscript.php

    <?php
     function foo($age) {
      require_once("conf.php");
      if($age > $maxAge) 
        return "1"; 
      else 
        return "0";
    }
    
     echo foo(30); // Echos 1
     echo foo(30); // Echos 0
    ?>
    
    
    

    对foo(..)的第二次调用没有执行require_once,因为conf.php已经包含一次

    @tj111:注释掉的代码(如您在回答中发布的代码片段)的一个潜在问题是,如果一些维护程序员更新
    foo()
    并删除对
    my_file.php
    的依赖,他们可能不知道更新文件顶部的注释。然后,这个评论就会挂在那里,并且对每一个未来的程序员来说都是“谎言”。@Asph:我同意你的观点,个人不会因为这个原因而以我推荐的方式考虑我的代码。我的意思是,如果在每次通话中都包含文件存在严重问题(如性能),那么这是一种退路,我个人从未遇到过这个问题。