...

/

Solution Review: Type Hinting

Solution Review: Type Hinting

Let's look at the solution of the Type Hinting challenge.

We'll cover the following...

Solution

Press + to interact
<?php
interface 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 ...