PHP游戏获胜';无法识别来自表单的输入,不';t运行开关case语句
我有一个基于文本的探索游戏,我正在开发,我的代码不会从我的命令表单中获取输入。它可能需要输入,只是我使用的PHP无法识别它。另一个问题是,我的PHP游戏获胜';无法识别来自表单的输入,不';t运行开关case语句,php,forms,input,switch-statement,Php,Forms,Input,Switch Statement,我有一个基于文本的探索游戏,我正在开发,我的代码不会从我的命令表单中获取输入。它可能需要输入,只是我使用的PHP无法识别它。另一个问题是,我的switch($command){语句似乎没有运行。它只是跳过了整个过程。我不知道发生了什么。任何帮助都将不胜感激。 代码: index.php(我将其作为一个.php文件,因此$input变量可以从该文件传递到game.php) 城市探险 game.php: <?php include_once 'index.php'; pri
switch($command){
语句似乎没有运行。它只是跳过了整个过程。我不知道发生了什么。任何帮助都将不胜感激。
代码:
index.php(我将其作为一个.php文件,因此$input变量可以从该文件传递到game.php)
城市探险
game.php:
<?php
include_once 'index.php';
print($input);
$World = simplexml_load_file("gameworld.xml");
$CurrentPos = 0;
$Done = 0;
print "<br>";
printplace();
function printplace() {
GLOBAL $World, $CurrentPos;
$Room = $World->ROOM[$CurrentPos];
$Name = $Room->NAME;
$Desc = wordwrap((string)$Room->DESC);
print "$Name<br>";
print str_repeat('-', strlen($Name));
print "<br>$Desc<br>";
if ((string)$Room->NORTH != '-') {
$index = (int)$Room->NORTH;
print "North: {$World->ROOM[$index]->NAME}<br>";
}
if ((string)$Room->SOUTH != '-') {
$index = (int)$Room->SOUTH;
print "South: {$World->ROOM[$index]->NAME}<br>";
}
if ((string)$World->ROOM[$CurrentPos]->WEST != '-') {
$index = (int)$Room->WEST;
print "West: {$World->ROOM[$index]->NAME}<br>";
}
if ((string)$World->ROOM[$CurrentPos]->EAST != '-') {
$index = (int)$Room->EAST;
print "East: {$World->ROOM[$index]->NAME}<br>";
}
print "<br>";
}
$input = explode(' ', $input);
print "<br>";
foreach ($input as $command) {
switch ($command) {
case 'north':
if ((string)$World->ROOM[$CurrentPos]->NORTH != '-') {
$CurrentPos = (int)$World->ROOM[$CurrentPos]->NORTH;
printplace() ;
} else {
print "You cannot go north!<br>";
}
break;
case 'south':
if ((string)$World->ROOM[$CurrentPos]->SOUTH != '-') {
$CurrentPos = (int)$World->ROOM[$CurrentPos]->SOUTH;
printplace() ;
} else {
print "You cannot go south!<br>";
}
break;
case 'west':
if ((string)$World->ROOM[$CurrentPos]->WEST != '-') {
$CurrentPos = (int)$World->ROOM[$CurrentPos]->WEST;
printplace() ;
} else {
print "You cannot go west!<br>";
}
break;
case 'east':
if ((string)$World->ROOM[$CurrentPos]->EAST != '-') {
$CurrentPos = (int)$World->ROOM[$CurrentPos]->EAST;
printplace() ;
} else {
print "You cannot go east!<br>";
}
break;
case 'look':
printplace() ;
break;
default:
print "not a valid command... <br>";
break;
}
}
print "<br>Thanks for playing!<br>";
?>
发生的情况是,输入不起作用,switch case语句不起作用,打印“
感谢播放!
”;
在switch case语句之前运行。很抱歉,如果我不能正确描述这一点。您可能希望在此处查看真实内容:。您将能够看到那里发生的真实错误。
<?php $input = $_POST["input"]; ?>
除此之外,还包括其他问题移动
<?php $input = $_POST["input"]; ?>
在include上面-虽然这里还有其他问题在包含所有game.php之前,您不应该分配$input变量。您能澄清一下吗?我不太明白,对不起。您是说在包含所有game.php之前,我不应该分配$input吗?如果是,我怎么做(我还没有包含它吗?对不起,我是个noob),或者您是说我的问题是,在包含所有game.php之前,您不会分配$input变量?请将
移到包含的上方-尽管此处还有其他问题,但input的工作非常出色。谢谢+1@dagon请将您的评论移至“答案”部分,以便我们将问题标记为已回答。谢谢!谢谢在包含所有game.php之前,不要分配$input变量。你能澄清一下吗?我不太明白,对不起。你是说在包含所有game.php之前,我不应该分配$input吗?如果是,我怎么做(我还没有包括它?对不起,我是个noob),或者您是说我的问题是,在包含所有game.php之前,您不会分配$input变量?请将
移到包含的上方-尽管此处还有其他问题,但input的工作非常出色。谢谢+1@dagon请将您的评论移动到“答案”部分,以便我们将问题标记为已回答。谢谢!