Problem 08. Pokemon Trainer
Досега съм нямал проблеми в Софтуни, но това OOP , голям зор...
От тук надолу в това решение, нищо не разбирам :
else { $pokemon = new Pokemon($pokemonName, $pokemonElement, $pokemonHealth); foreach ($trainersAndPokemons as $trainersAndPokemon) { if ($trainersAndPokemon->getName() == $trainerName){ $trainersAndPokemon->Pokemon($pokemon); }
Как така викаме не $trainerAndPkemon методът getName(), като това е променлива, а не е обект (дори PHP Storma не го дописва след стрелката). И кой метод getName взимаме, като и в двата класа имаме такъв метод. Доколкото разбрах, трябва да създадем обект (инстанция) на класа и на него можем да му викаме методите на класа, който инстанцира, но тук се обърквам.
И за да не отварям нова тема, не ми се получава и дебъгването. Слагам break points, пускам дебъга, отваря ми конзолата отдолу, въвеждам входа, но не ми дава да кликам "Next step, Step Into ....".
Да.. прав си, сега го разбрах. Можеш ли да ми помогнеш с проблема с дебъгването и това, че методите, след като натисна -> не ми ги дописва (кои мога да ползвам) точно в примера, който съм дал.
Благодаря !
Дебъгването е малко Божа работа. Не съм сигурен, че отдалечено мога да помогна. Убеден съм обаче, че в конзолата работи 100%.
Що се отнася до подсказките. Това е защото интерпретаторът и РНРStorm-а не знаят какво ще има в този масив. Може да го декорираш с анотация при декларацията на масива, че ще има обекти от тип Trainer. Т.е., че е Trainer масив