Вызов метода класса из другого класса. - PullRequest
1 голос
/ 23 октября 2010

В основном у меня есть два класса Inventory и Character.Во время создания инвентаря я пытаюсь определить пол персонажа, но это, похоже, совсем не работает для меня ... Я до сих пор не использовал статические функции , так что если кто-то могукажите, что я делаю не так, это было бы очень признательно ...

Файл 1:

class Inventory
{
    protected $user_gender;
    public function __construct( $id = 0 )
    {
        $user_gender = Character::getGenderStatic();
    }
}

Файл 2:

class Character
{
    protected static $gender;
    public static function getGenderStatic() { 
        return self::$gender; 
    }
}

1 Ответ

1 голос
/ 23 октября 2010

В конструкторе для Inventory у вас есть

$user_gender = Character::getGenderStatic();

Это создает новую переменную, которая ограничена конструктором.Вы, вероятно, имеете в виду

$this->user_gender = Character::getGenderStatic();

, который относится к защищенной переменной объекта Inventory, которую вы определили в начале класса.

Я не вижу ничего плохого в том, как вы 'Вы используете статические функции, за исключением того, что вы не установили значение для Character::$gender (защищенная статическая переменная, которую вы определяете в начале класса символов), но я предполагаю, что вы установили это где-то еще.

...