Внутренняя ошибка сервера: доступ к данным из класса 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

Другие вопросы по тегам