我最近一直在制作一个Garry的Mod加载屏幕,基本上我试图简化'地图名称替换为短语。但是,PHP似乎没有打印数组值。
$map = $_GET["map"];
$map_list = array (
"gm_construct" => "Construct",
"gm_flatgrass" => "Flatgrass"
);
if (in_array($map, $map_list) == true)
{
if ($map == $map_list[1])
{
print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");
}
else if ($map == $map_list[2])
{
print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_flatgrass']) . "'</script>");
}
}
答案 0 :(得分:0)
关于如何访问关联数组$map_list
的几个问题。使用以下内容:
<?php
$map = "Flatgrass"; // $_GET["map"];
$map_list = array (
"gm_construct" => "Construct",
"gm_flatgrass" => "Flatgrass"
);
$key = array_search($map, $map_list);
if ($key !== false) {
print("<script>document.getElementById('map_name').innerHTML = '" . $map_list[$key] . "'</script>");
}
如果$_GET
值在$map_list
中有一个键,则只需直接使用它来打印脚本。
不要在连接字符串中调用print()
(它直接输出到标准输出,不返回字符串)。而且,这会减少您的代码,只需使用一个if
语句使用直接传入的值打印出脚本。
而且,在原始代码中,您不能使用整数对$map_list
进行索引,因为您只使用字符串键使其成为关联数组。
答案 1 :(得分:0)
您应该尝试以下代码: -
$map = $_GET["map"];
$map_list = array (
"gm_construct" => "Construct",
"gm_flatgrass" => "Flatgrass"
);
if (in_array($map, $map_list) == true)
{
if ($map == $map_list["gm_construct"])
{
print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");
}
else if ($map == $map_list["gm_flatgrass"])
{
print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_flatgrass']) . "'</script>");
}
}
答案 2 :(得分:0)
你应该改变
print("<script>document.getElementById('map_name').innerHTML = '" . print($map_list['gm_construct']) . "'</script>");
到
print("<script>document.getElementById('map_name').innerHTML = '{$map_list['gm_construct']}'</script>");
或者您可以使用
echo '<script>document.getElementById("map_name").innerHTML = "', $map_list['gm_construct'] , '"</script>';
更好。