让我说我有一个文件effects.php,里面有一个数组,如
$techniqueDescriptions = array("damage" => "Deals ".$level." damage.");
我还有另一个文件display.php,它们都获得了级别并显示了攻击。
$level = $user->data["level"];
echo $techniqueDescriptions["damage"];
我尝试了上面的设置,即使我在两个文件中声明全局,也会给出" Deals damage"如果可能的话,我怎样才能让它发挥作用?
答案 0 :(得分:4)
没有。您正在定义$level
AFTER 数组已由PHP解析/执行/构建。 PHP无法及时回归"追溯性地插入$level
的值,当您在解析数据时尝试将$level
插入数组时,该值不存在。
您必须执行类似
的操作$level = 'foo';
include('array_gets_defined_here.php');
echo $techniqueDescriptions['damage'];
反过来说:
include('array_gets_defined_here.php');
$level = 'foo';
echo $techniqueDescriptions['damage'];
让你进入时间旅行的状况。
答案 1 :(得分:3)
考虑使用level作为参数。
effects.php:
function techniqueDescriptions($level) {
return array("damage" => "Deals ".$level." damage.");
}
Display.php的:
require_once('effects.php')
$level = $user->data["level"];
echo techniqueDescriptions($level)["damage"];