PHP将文件包含到自定义“命名空间”中
我需要要求/包括一个文件,以便将国外软件的配置值提取到我正在开发的软件中 是否可以通过include/require以某种方式处理外部php文件,并将其中的所有变量加载到一个数组中,或者至少将其设置到某种自定义名称空间中,以防止其重置现有变量 外部应用程序非常旧,使用普通PHP和变量赋值为运行做好准备 例如:PHP将文件包含到自定义“命名空间”中,php,Php,我需要要求/包括一个文件,以便将国外软件的配置值提取到我正在开发的软件中 是否可以通过include/require以某种方式处理外部php文件,并将其中的所有变量加载到一个数组中,或者至少将其设置到某种自定义名称空间中,以防止其重置现有变量 外部应用程序非常旧,使用普通PHP和变量赋值为运行做好准备 例如: $db_type = 'mysql'; $db_user = 'hello'; $db_pass = 'world'; $charset = 'UTF-8'; 您可以将此代码包含在函数
$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;
}
感谢您的想法-我已经知道这种方式,但正如我所说,它是一个存在的外部应用程序,我无法修改该文件,从而终止在配置文件中返回数组的能力。感谢您的想法-我已经知道这种方式,但正如我所说,它是一个存在的外部应用程序,我无法修改该文件这终止了在配置文件中返回数组的功能。太好了,谢谢!只是完全忘记了函数有自己的局部范围。太好了,谢谢!只是完全忘记了函数有自己的局部作用域。