Внутренняя ошибка сервера: доступ к данным из класса php?
У меня есть другая проблема.
Я получаю внутреннюю ошибку сервера, когда я пытаюсь получить данные из следующего класса php:
<?php
/**
* Created by JetBrains PhpStorm.
* User: -Ryuk-
* Date: 21/11/12
* Time: 17:08
* To change this template use File | Settings | File Templates.
*/
class game
{
private $_serverStatus = "Online";
private $_numOnline = "32";
private $_maxPlayers = "50";
private $_messageOfTheDay = "Welcome to game!";
private $_Players = "Falcubar2011;Zacardor;";
public function GetStatus()
{
return this::$_serverStatus;
}
public function GetNumOnline()
{
return this::$_numOnline;
}
public function MaxPlayers()
{
return this::$_maxPlayers;
}
public function GetMOTD()
{
return this::$_messageOfTheDay;
}
public function GetPlayers()
{
return this::$_Players;
}
public function GetServiceColour()
{
if(this::GetStatus() != "Online")
return "#FF0000";
else
return "#008000";
}
}
Я пытаюсь назвать это так (в index.php) Я сократил это, чтобы вы не получили весь мусор.
$mc = new game();
<div id="Stats">
<div id=roundedbox>
<h1>Info</h1>
<p>
<p><strong>IP:</strong> play.game.com</p>
<br>
<p>Slots: <?php print $mc->GetNumOnline(); ?> / <?php print $mc->MaxPlayers(); ?></p>
<br>
<p>Status: <?php print $mc->GetStatus(); ?></p>
<br>
<p>MOTD: <?php print $mc->GetMOTD(); ?></p>
</div>
</div>
Кто-нибудь знает, как решить эту проблему?
1 ответ
Решение
Ваш синтаксис вокруг this
совершенно неправильно. Вместо
return this::$_serverStatus;
Вы должны использовать
return $this->_serverStatus;
Точно так же ваш внутренний звонок GetStatus()
должно быть
if ($this->GetStatus() != 'Online') {
// ...
Я рекомендую вам начать читать здесь - http://php.net/manual/en/language.oop5.basic.php