我遇到的错误是unexpected T_STRING, expecting '(' on line 22
,但我没有看到任何(
丢失。
有人可以向我解释这里发生了什么吗?在第22行之前我错过了什么吗?
这是我的代码:
<?php
class Room {
protected $description = "";
protected $name = "";
protected $rooms = array(
"ne" => NULL,
"n" => NULL,
"nw" => NULL,
"e" => NULL,
"c" => NULL,
"w" => NULL,
"se" => NULL,
"s" => NULL,
"sw" => NULL
);
public function __construct ($n = "", $desc = "") {
$this->description = $desc;
$this->name = $n;
}
public function get Description () {
return $this->description;
}
public function get Name () {
return $this->name;
}
public function set Room ($direction = "c", $room) {
$this->rooms[$direction] = $room; return True;
}
public function getNewRoom ($direction = "") {
return $this->rooms[$direction];
}
}
$start Room = new Room ("First Room", "A small room. There is a door to the north.");
$second Room = new Room ("Second Room", "A short hallway that ends in a dead end. There is a door to the south.");
$start Room->set Room("n", $second Room);
$second Room->set Room("s", $first Room);
$current Room = $start Room;
$play = True;
while ($play) {
print $current Room->get Name();
print $current Room->get Description();
$input = readline("(Enter your command. Type QUIT to quit.) >");
if ($input == "QUIT") {
$play = False;
} else {
if ($input == 'nw' ||
$input == 'n' ||
$input == 'né' ||
$input == 'e' ||
$input == 'e' ||
$input == 'e' ||
$input == 'e' ||
$input == 'e' ||
$input == 'e')
{
$current Room = $current Room->getNewRoom($input);
}
}
}
?>
答案 0 :(得分:10)
你的一些方法名称中都有空格。
public function get Description () {
public function get Name () {
public function set Room ($direction = "c", $room) {
这些是不允许的。您必须使用单字名称:
public function getDescription () { // For example
然后,以同样的方式调用它:
print $currentRoom->getDescription();
同样的事情必须适用于变量。
$current Room = $start Room; // Not allowed
$currentRoom = $startRoom; // Good!