包含文件时使用php函数不起作用?

包含文件时使用php函数不起作用?,php,Php,我的PHP函数是 function functionName() { include($_SERVER['DOCUMENT_ROOT']."/path/file.php"); } File.php的内容是 $foo = 'bar'; 调用函数(test.php文件的内容) 函数名() 调用函数和变量不起作用时 echo $foo; <- not works echo$foo 这是因为如果不包括定义了$foo的另一个文件,它就不能为它补值 但是在添加时包括(“/path/file.p

我的PHP函数是

function functionName()
{
include($_SERVER['DOCUMENT_ROOT']."/path/file.php");
}
File.php的内容是
$foo = 'bar';
调用函数(test.php文件的内容)

函数名()

调用函数和变量不起作用时

echo $foo;  <- not works

echo$foo 这是因为如果不包括定义了
$foo
的另一个文件,它就不能为它补值

但是在添加
时包括(“/path/file.php”)其工作原理。

当然有。现在,一件重要的事情:你是否包括基于域名的信息

示例:将从包含在当前设置中。以下是如何包含工作:

  • /file.php
    >文件位于域的根目录中。必须在域的 根
  • /file.php
    >文件位于同一目录中
  • 。/file.php
    >文件位于父目录中
  • 。/../file.php
    >文件位于祖父母目录中
  • (等等)

    include()
    require()
    及其相关函数所做的就是包含另一个文件,就好像它是包含它们的文件的一部分一样。区别如下:

    包括和要求完全相同,但失败时除外:

    • require将产生一个致命错误(E_COMPILE_error),脚本将自杀
    • include将只生成一个警告(E_警告),脚本将 完成其余的命令

    这是因为如果不包括定义了
    $foo
    的另一个文件,它就不能为它补值

    但是在添加
    时包括(“/path/file.php”)其工作原理。

    当然有。现在,一件重要的事情:你是否包括基于域名的信息

    示例:将从包含在当前设置中。以下是如何包含工作:

  • /file.php
    >文件位于域的根目录中。必须在域的 根
  • /file.php
    >文件位于同一目录中
  • 。/file.php
    >文件位于父目录中
  • 。/../file.php
    >文件位于祖父母目录中
  • (等等)

    include()
    require()
    及其相关函数所做的就是包含另一个文件,就好像它是包含它们的文件的一部分一样。区别如下:

    包括和要求完全相同,但失败时除外:

    • require将产生一个致命错误(E_COMPILE_error),脚本将自杀
    • include将只生成一个警告(E_警告),脚本将 完成其余的命令

      • 函数中处理的所有变量仅限于该函数。您可以在函数中创建无数个变量,但除了返回变量外,这些变量在函数外部不可用

        function thisIsMyFunction () {
          $var1 = "foo";
          $var2 = "bar";
          return $var1;
        }
        
        echo thisisMyFunction();
        
        将给您“foo”,您可以将其放入变量或回显。如果您正在寻找加载多个变量(例如配置文件)的方法,则可以执行以下操作:

        config.php
        $config["var1"] = "foo";
        $config["var2"] = "bar";
        
        index.php
        include "config.php";
        
        function myFunction(){
          global $config;
          echo $config["var1"] . " " . $config["var2"];
        }
        
        myFunction();
        
        will result in
        
        foo bar
        

        因此,简而言之,函数中完成的某些操作将保留在函数中,除非未定义该函数的某些输出。这就是为什么包含在函数中不起作用。

        函数中处理的所有变量仅限于该函数。您可以在函数中创建无数个变量,但除了返回变量外,这些变量在函数外部不可用

        function thisIsMyFunction () {
          $var1 = "foo";
          $var2 = "bar";
          return $var1;
        }
        
        echo thisisMyFunction();
        
        function functionName()
        {
        global $foo;
        global $bar;
        
        include($_SERVER['DOCUMENT_ROOT']."/path/file.php");
        }
        functionName();
        echo $foo;
        echo $bar;
        
        将给您“foo”,您可以将其放入变量或回显。如果您正在寻找加载多个变量(例如配置文件)的方法,则可以执行以下操作:

        config.php
        $config["var1"] = "foo";
        $config["var2"] = "bar";
        
        index.php
        include "config.php";
        
        function myFunction(){
          global $config;
          echo $config["var1"] . " " . $config["var2"];
        }
        
        myFunction();
        
        will result in
        
        foo bar
        

        因此,简而言之,函数中完成的某些操作将保留在函数中,除非未定义该函数的某些输出。这就是为什么包含函数将不起作用。

        我升级了我的问题,请检查。。。您正在使用
        $\u服务器['DOCUMENT\u ROOT']
        为什么?这将返回文件在本地操作系统中的物理路径。如果这确实是您的目标,请确保PHP具有查找此信息的权限。也不要忘记下划线。我升级了我的问题,请检查。。。您正在使用
        $\u服务器['DOCUMENT\u ROOT']
        为什么?这将返回文件在本地操作系统中的物理路径。如果这确实是您的目标,请确保PHP具有查找此信息的权限。也不要忘记下划线。这个函数thismyFunction(){$var2=“bar”;$config[“var2”]=“bar”;}thismyFunction()如何;echo$var2@JohnSmiith为全局var设置另一个值可以从一个函数开始工作,但仅与第二个示例的思路相同。因此,全局变量必须存在并包含在要在函数中操作的函数中;echo$var2@JohnSmiith为全局var设置另一个值可以从一个函数开始工作,但仅与第二个示例的思路相同。因此,全局var必须存在并包含在函数中,以便在函数中进行操作。
        function functionName()
        {
        global $foo;
        global $bar;
        
        include($_SERVER['DOCUMENT_ROOT']."/path/file.php");
        }
        functionName();
        echo $foo;
        echo $bar;