Solution Review: Type Hinting
Let's look at the solution of the Type Hinting challenge.
We'll cover the following...
Solution
Press + to interact
<?phpinterface User {public function setUsername($username);public function getUsername();public function setGender($gender);public function getGender();}class Commentator implements User {private $username = '';private $gender = 'Not available';public function setUsername($name) {$this -> username = (is_string($name))? $name : 'N/A';}public function getUsername() {return $this -> username;}public function setGender($gender) {$gendersArray = array('female', 'male', 'other');if(in_array($gender, $gendersArray)) {$this -> gender = $gender;}}public function getGender() {return $this -> gender;}}function addMrOrMrsToUsername(User $user) {$userName = $user -> getUsername();$userGender = $user -> getGender();if($userGender === 'female') {return "Mrs. " . $userName;}else if($userGender === 'male') {return "Mr. " . $userName;}return $userName;}function test(){$user1 = new Commentator();$user1 -> setUsername("Jane");$user1 -> setGender("female");$user2 = new Commentator();$user2 -> setUsername("Bob");$user2 -> setGender("male");return addMrOrMrsToUsername($user1) . " and " .addMrOrMrsToUsername($user2);}echo test();?>
Explanation
-
Lines ...