Как передать в функцию параметры из объекта?

195
24 июля 2018, 06:30

Всем привет, я только начинаю изучать ООП и столкнулся вот с такой проблемой.

<?php 
class Boss {
public $name;
public $lvl;
public $hp;
public $damage;
public $revardPay;
public $revardExp;
public $db;
public function __construct($name, $lvl, $hp, $damage, $revardPay, $revardExp, $db) {
$this->name = $name;
$this->lvl = $lvl;
$this->hp = $hp;
$this->damage = $damage;
$this->revardPay = $revardPay;
$this->revardExp = $revardExp;
}
public function EngineBoss ($name, $lvl, $hp, $damage, $revardPay, $revardExp, $db){    
$LS = new LoginSystem();
$LS->init();
$detailsPay = $LS->getUser('pay'); // Деньги
$detailsExP = $LS->getUser('expirience'); // Опыт
$detailsManna = $LS->getUser('manna'); // Энергия
$detailsPower = $LS->getUser('power'); // Сила
$detailsSutenerHP = $LS->getUser($db); // Здоровье босса
$detailsLvL = $LS->getUser('lvl'); // Уровень
$detailsUmenieGold = $LS->getUser('umenieGold'); // Прибавка к баксам
$detailsUmenieExp = $LS->getUser('umenieExp'); // Прибавка к опыту
$detailsUmenieENG = $LS->getUser('umenieENG'); // Прибавка к энегрии
$pay     = $detailsPay;        // Деньги
$exp     = $detailsExP;        // Опыт
$power   = $detailsPower;      // Сила
$bossHP  = $detailsSutenerHP;  // Здоровье босса
$manna   = $detailsManna;      // Манна
$lvl     = $detailsLvL;        // Уровень
$prem    = $detailsUmenieGold; // Прибавка к баксам
$premExp = $detailsUmenieExp;  // Прибавка к опыту
$umENG   = $detailsUmenieENG;  // Прибавка к энергии
$mannaBoss = $damage;    // Цена энергии за удар
$sumEndPay = $revardPay; // Награда за победу, баксы
$sumEndExp = $revardExp; // Награда за победу, опыт
$endHP     = $hp;        // Возвращаем здоровье боссу после победы
return $mannaBoss;
}
}
 $gopnik = new Boss('Гопник', 15, 10000, 200, 10000, 4000, 'sutenerHp');
 echo $gopnik->EngineBoss(//сюда нужно как-то передать $gopnik);
?>

Что я делаю не так?

Answer 1

Так ва не надо ничего туда передавать. Во первых уберите все аргументы из метода EngineBoss, они задаются через конструктор класса при создании объекта. А во вторых зачем вам передавать объект в метод который и вызывает этот объект?

READ ALSO
Поиск QMainWindow в приложении

Поиск QMainWindow в приложении

Внедряюсь/Инжектируюсь в стороннее Qt-приложениеПеребираю все QWidget, но не нахожу среди них QMainWindow

131
Копирование указателей из одного std::map в другой

Копирование указателей из одного std::map в другой

Мне нужно скопировать данные из одного std::map в другой std::map, при условии что эти данные выражены в виде указателейТо есть с помощью оператора...

150
includePath в Visual Studio Code не видны хедеры

includePath в Visual Studio Code не видны хедеры

IntelliSense в VS Code не видит хедеры, установленные в /usr/local/includeЯ собрал и установил GLUT для OpenGL, но по умолчанию хедеры и либы установились не в /usr, а в /usr/local

207