Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Object-Oriented PHP Basics (Retired) Inheritance, Interfaces, and Exceptions Final Challenge

Maxwell Kendall
seal-mask
.a{fill-rule:evenodd;}techdegree
Maxwell Kendall
Front End Web Development Techdegree Student 12,102 Points

OOP PHP Basics

<?php

public function __construct($name, $flavor, $record, $species){
  parent::__construct($name, $flavor, $record);
    $this->species = $species;
}
   public function getInfo(){
    $this->species . " "
    $this->common_name . " tastes "
    $this->flavor . ". The record " 
    $this->species . " "
    $this->common_name . " weighed "
    $this->record_weight;
  }
}

$brook_trout = new Trout("Trout", "Delicious", "14 pounds 8 ounces", "Brook");

?>

Need to return via public function getinfo "Brook Trout tastes delicious. The record Brook Trout weighed 14 pounds 8 ounces."

What am I doing wrong...?

MOD NOTE: Added Markdown for easier readability

2 Answers

First, you do not define the attribute public $species;.

Second, you do not define a class anywhere. If I remember right, you need a class Fish followed by a class Trout extends Fish;.

Third, your public function getInfo() has all sorts of issues. You actually do not do anything with the method (a function inside a class) has to have a return. I have been successful with something like this:

<?php
// fill in proper code here

public function getInfo() {
    return "$this->common_name $this->species is a $this->flavor tasting fish.  The record weight is $this->record.";
}

Using double quotes allows the variable to be parsed inside the double quotes.

You could do something like you propose, but you have to assign it to a variable and then return the variable.