PHP将文件包含到自定义“命名空间”中

PHP将文件包含到自定义“命名空间”中,php,Php,我需要要求/包括一个文件,以便将国外软件的配置值提取到我正在开发的软件中 是否可以通过include/require以某种方式处理外部php文件,并将其中的所有变量加载到一个数组中,或者至少将其设置到某种自定义名称空间中,以防止其重置现有变量 外部应用程序非常旧,使用普通PHP和变量赋值为运行做好准备 例如: $db_type = 'mysql'; $db_user = 'hello'; $db_pass = 'world'; $charset = 'UTF-8'; 您可以将此代码包含在函数

我需要要求/包括一个文件,以便将国外软件的配置值提取到我正在开发的软件中

是否可以通过include/require以某种方式处理外部php文件,并将其中的所有变量加载到一个数组中,或者至少将其设置到某种自定义名称空间中,以防止其重置现有变量

外部应用程序非常旧,使用普通PHP和变量赋值为运行做好准备

例如:

$db_type = 'mysql';
$db_user = 'hello';
$db_pass = 'world';
$charset = 'UTF-8'; 

您可以将此代码包含在函数中。所有这些变量都在局部范围内

function get_old_data() {
    include 'old.php';

    // do whatever you want with these variables

}

您可以将此代码包含在函数中。所有这些变量都在局部范围内

function get_old_data() {
    include 'old.php';

    // do whatever you want with these variables

}

您可以在包含的文件中使用return

可以在包含的文件中执行return语句,以终止该文件中的处理并返回到调用它的脚本

例如:

// config.php
return array('db_type' => 'mysql',
    'db_user' => 'hello',
    'db_pass' => 'world',
    'charset' => 'UTF-8',);
然后像这样使用它

$config = include 'config.php';
$connection = new Connection(include 'config.php');
即使这样

$config = include 'config.php';
$connection = new Connection(include 'config.php');

您可以在包含的文件中使用return

可以在包含的文件中执行return语句,以终止该文件中的处理并返回到调用它的脚本

例如:

// config.php
return array('db_type' => 'mysql',
    'db_user' => 'hello',
    'db_pass' => 'world',
    'charset' => 'UTF-8',);
然后像这样使用它

$config = include 'config.php';
$connection = new Connection(include 'config.php');
即使这样

$config = include 'config.php';
$connection = new Connection(include 'config.php');

我假设您知道要从外部配置中使用的配置变量的名称

您可以创建一个函数,在其中包含文件,从vars构建一个数组,然后返回调用方

在这种情况下,外部文件将在函数的本地作用域中执行,并且不应覆盖外部变量

function loadconfig() {
  include 'external.php';
  // do calculations and build var_array
  return $var_array;
}

我假设您知道要从外部配置中使用的配置变量的名称

您可以创建一个函数,在其中包含文件,从vars构建一个数组,然后返回调用方

在这种情况下,外部文件将在函数的本地作用域中执行,并且不应覆盖外部变量

function loadconfig() {
  include 'external.php';
  // do calculations and build var_array
  return $var_array;
}

感谢您的想法-我已经知道这种方式,但正如我所说,它是一个存在的外部应用程序,我无法修改该文件,从而终止在配置文件中返回数组的能力。感谢您的想法-我已经知道这种方式,但正如我所说,它是一个存在的外部应用程序,我无法修改该文件这终止了在配置文件中返回数组的功能。太好了,谢谢!只是完全忘记了函数有自己的局部范围。太好了,谢谢!只是完全忘记了函数有自己的局部作用域。