如何使用 php 中包含文件的数组?
how to use array by included file in php?
我有一个 init.php 文件,其中包含以下代码:
$engines = [
"id" => [
'A',
'B',
'C'
],
"url" => [
'D',
'E',
'F'
]
];
return $engines;
如您在该文件中所见,只有一个数组需要初始化包含在另一个文件中的站点,如下所示:
$engines = require "init.php"; //the file with the array
$urlsite='';
switch ($_POST['engn'])
{
case $engines['id'][0]:
$urlsite=$engines['url'][0]."/download/";
break;
case $engines['id'][1]:
$urlsite=$engines['url'][1]."/fixes/";
break;
case $engines['id'][2]:
$urlsite=$engines['url'][2]."/12555/";
break;
default:
echo '{"err":"true","errtype":"1"}';
break;
}
问题是 $engines 数组在 switch 语句中调用时似乎为空(或类似的东西)。
我还尝试删除 init.php 中的 return 命令并在没有赋值的情况下包含它,但是,在这种情况下,数组根本不存在(return 我是 switch 语句中不存在的变量的异常错误)。
我不明白哪里出了问题。
如何在另一个文件中使用数组?
非常感谢。
编辑:我使用 EasyPHP php 版本 5.4.24
您正在将 $engines
设置为 require 语句的值。只是不要这样做,它应该可以正常工作。换句话说,更改:
$engines = require "init.php"; //the file with the array
至:
require "init.php"; //the file with the array
并从 init.php
中删除 return
语句。
这是有效的,因为 require
只是在 执行之前 将外部文件中的代码包含在当前文件中。虽然在特殊情况下,它可以像您尝试的那样使用,但在这种情况下,它不需要像函数那样 运行 和 return 一个值。由于您在 init.php
中为 $engines
设置了值,因此当当前文件为 运行 时,代码将创建该数组。
init.php SB
<?php
$engines = [
"id" => [
'A',
'B',
'C'
],
"url" => [
'D',
'E',
'F'
]
];
?>
你不需要在那里使用 return,然后正如 cronoclee 所说...
我有一个 init.php 文件,其中包含以下代码:
$engines = [
"id" => [
'A',
'B',
'C'
],
"url" => [
'D',
'E',
'F'
]
];
return $engines;
如您在该文件中所见,只有一个数组需要初始化包含在另一个文件中的站点,如下所示:
$engines = require "init.php"; //the file with the array
$urlsite='';
switch ($_POST['engn'])
{
case $engines['id'][0]:
$urlsite=$engines['url'][0]."/download/";
break;
case $engines['id'][1]:
$urlsite=$engines['url'][1]."/fixes/";
break;
case $engines['id'][2]:
$urlsite=$engines['url'][2]."/12555/";
break;
default:
echo '{"err":"true","errtype":"1"}';
break;
}
问题是 $engines 数组在 switch 语句中调用时似乎为空(或类似的东西)。
我还尝试删除 init.php 中的 return 命令并在没有赋值的情况下包含它,但是,在这种情况下,数组根本不存在(return 我是 switch 语句中不存在的变量的异常错误)。 我不明白哪里出了问题。
如何在另一个文件中使用数组?
非常感谢。
编辑:我使用 EasyPHP php 版本 5.4.24
您正在将 $engines
设置为 require 语句的值。只是不要这样做,它应该可以正常工作。换句话说,更改:
$engines = require "init.php"; //the file with the array
至:
require "init.php"; //the file with the array
并从 init.php
中删除 return
语句。
这是有效的,因为 require
只是在 执行之前 将外部文件中的代码包含在当前文件中。虽然在特殊情况下,它可以像您尝试的那样使用,但在这种情况下,它不需要像函数那样 运行 和 return 一个值。由于您在 init.php
中为 $engines
设置了值,因此当当前文件为 运行 时,代码将创建该数组。
init.php SB
<?php
$engines = [
"id" => [
'A',
'B',
'C'
],
"url" => [
'D',
'E',
'F'
]
];
?>
你不需要在那里使用 return,然后正如 cronoclee 所说...