Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

PHP 7: Update the constructor in the Dog class to also allow the passing of the

ID: 3904122 • Letter: P

Question

PHP 7:

Update the constructor in the Dog class to also allow the passing of the dog_gender value (Male or Female). Update the lab.php program to pass the gender through the constructor. Also update lab.php to explode the $lab string into five parts (one more for the dog_gender). Then evaluate the results (‘TRUE’ or ’FALSE’) returned from the gender_error to display “Gender update successful” or “Gender update not successful”.

Dog.php:

<?php

class Dog

{

// ----------------------------------------- Properties -----------------------------------------

private $dog_weight = 0;

private $dog_breed = "no breed";

private $dog_color = "no color";

private $dog_name = "no name";

private $error_message = "??";

// ---------------------------------- Constructor ----------------------------------------------

function __construct($value1, $value2, $value3, $value4)

{

$name_error = $this->set_dog_name($value1) == TRUE ? 'TRUE,' : 'FALSE,';

$breed_error = $this->set_dog_breed($value2) == TRUE ? 'TRUE,' : 'FALSE,';

$color_error = $this->set_dog_color($value3) == TRUE ? 'TRUE,' : 'FALSE,';

$weight_error= $this->set_dog_weight($value4) == TRUE ? 'TRUE' : 'FALSE';

$this->error_message = $name_error . $breed_error . $color_error . $weight_error;

}

//------------------------------------toString--------------------------------------------------

public function __toString()

{

        return $this->error_message;

}

// ---------------------------------- Set Methods ----------------------------------------------

function set_dog_name($value)

{

$error_message = TRUE;

(ctype_alpha($value) && strlen($value) <= 20) ? $this->dog_name = $value : $this->error_message = FALSE;

return $this->error_message;

}

function set_dog_weight($value)

{

$error_message = TRUE;

(ctype_digit($value) && ($value > 0 && $value <= 120)) ? $this->dog_weight = $value : $this->error_message = FALSE;

return $this->error_message;

}

function set_dog_breed($value)

{

$error_message = TRUE;

(ctype_alpha($value) && strlen($value) <= 35) ? $this->dog_breed = $value : $error_message = FALSE;

return $this->error_message;

}

function set_dog_color($value)

{

$error_message = TRUE;

(ctype_alpha($value) && strlen($value) <= 15) ? $this->dog_color = $value : $this->error_message = FALSE;

return $this->error_message;

}

// ----------------------------------------- Get Methods ------------------------------------------------------------

function get_dog_name()

{

return $this->dog_name;

}

function get_dog_weight()

{

return $this->dog_weight;

}

function get_dog_breed()

{

return $this->dog_breed;

}

function get_dog_color()

{

return $this->dog_color;

}

function get_properties()

{

return "$this->dog_weight,$this->dog_breed,$this->dog_color.";

}

}

?>

Lab.php:

<?php

Require_once("e312dog.php");

$lab = new Dog('Fred','Lab','Yellow','100');

list($name_error, $breed_error, $color_error, $weight_error) = explode(',', $lab);

print $name_error == 'TRUE' ? 'Name update successful<br/>' : 'Name update not successful<br/>';

print $breed_error == 'TRUE' ? 'Breed update successful<br/>' : 'Breed update not successful<br/>';

print $color_error == 'TRUE' ? 'Color update successful<br/>' : 'Color update not successful<br/>';

print $weight_error == 'TRUE' ? 'Weight update successful<br/>' : 'Weight update not successful<br/>';

// ------------------------------Set Properties--------------------------

$dog_error_message = $lab->set_dog_name('Sally');

print $dog_error_message == TRUE ? 'Name update successful<br/>' : 'Name update not successful<br/>';

$dog_error_message = $lab->set_dog_weight('5');

print $dog_error_message == TRUE ? 'Weight update successful<br />' : 'Weight update not successful<br />';

$dog_error_message = $lab->set_dog_breed('Labrador');

print $dog_error_message == TRUE ? 'Breed update successful<br />' : 'Breed update not successful<br />';

$dog_error_message = $lab->set_dog_color('Brown');

print $dog_error_message == TRUE ? 'Color update successful<br />' : 'Color update not successful<br />';

// ------------------------------Get Properties--------------------------

print $lab->get_dog_name() . "<br/>";

print $lab->get_dog_weight() . "<br />";

print $lab->get_dog_breed() . "<br />";

print $lab->get_dog_color() . "<br />";

$dog_properties = $lab->get_properties();

list($dog_weight, $dog_breed, $dog_color) = explode(',', $dog_properties);

print "Dog weight is $dog_weight. Dog breed is $dog_breed. Dog color is $dog_color.";

?>

Explanation / Answer

lab.php
********

<?php
Require_once("dog.php");
$lab = new Dog('Fred','Lab','Yellow','100','Male');
list($name_error, $breed_error, $color_error, $weight_error, $gender_error) = explode(',', $lab);
print $name_error == 'TRUE' ? 'Name update successful<br/>' : 'Name update not successful<br/>';
print $breed_error == 'TRUE' ? 'Breed update successful<br/>' : 'Breed update not successful<br/>';
print $color_error == 'TRUE' ? 'Color update successful<br/>' : 'Color update not successful<br/>';
print $weight_error == 'TRUE' ? 'Weight update successful<br/>' : 'Weight update not successful<br/>';
print $gender_error == 'TRUE' ? 'Gender update successful<br/>' : 'Gender update not successful<br/>';
// ------------------------------Set Properties--------------------------
$dog_error_message = $lab->set_dog_name('Sally');
print $dog_error_message == TRUE ? 'Name update successful<br/>' : 'Name update not successful<br/>';
$dog_error_message = $lab->set_dog_breed('Labrador');
print $dog_error_message == TRUE ? 'Breed update successful<br />' : 'Breed update not successful<br />';
$dog_error_message = $lab->set_dog_color('Brown');
print $dog_error_message == TRUE ? 'Color update successful<br />' : 'Color update not successful<br />';
$dog_error_message = $lab->set_dog_weight('100');
print $dog_error_message == TRUE ? 'Weight update successful<br />' : 'Weight update not successful<br />';
$dog_error_message = $lab->set_dog_gender('Male');
print $dog_error_message == TRUE ? 'Gender update successful<br />' : 'Gender update not successful<br />';
// ------------------------------Get Properties--------------------------
print $lab->get_dog_name() . "<br/>";
print $lab->get_dog_breed() . "<br />";
print $lab->get_dog_color() . "<br />";
print $lab->get_dog_weight() . "<br />";
print $lab->get_dog_gender() . "<br />";
$dog_properties = $lab->get_properties();
list($dog_name, $dog_breed, $dog_color, $dog_weight, $dog_gender) = explode(',', $dog_properties);
print "Dog name is $dog_name. Dog breed is $dog_breed. Dog color is $dog_color. Dog weight is $dog_weight. Dog gender is $dog_gender";
?>

dog.php
**********

<?php
class Dog
{
// ----------------------------------------- Properties -----------------------------------------
private $dog_name = "no name";
private $dog_breed = "no breed";
private $dog_color = "no color";
private $dog_weight = 0;
private $dog_gender = "no gender";
private $error_message = "??";
// ---------------------------------- Constructor ----------------------------------------------
function __construct($value1, $value2, $value3, $value4, $value5)
{
$name_error = $this->set_dog_name($value1) == TRUE ? 'TRUE,' : 'FALSE,';
$breed_error = $this->set_dog_breed($value2) == TRUE ? 'TRUE,' : 'FALSE,';
$color_error = $this->set_dog_color($value3) == TRUE ? 'TRUE,' : 'FALSE,';
$weight_error= $this->set_dog_weight($value4) == TRUE ? 'TRUE' : 'FALSE';
$gender_error= $this->set_dog_gender($value5) == TRUE ? 'TRUE' : 'FALSE';
$this->error_message = $name_error . $breed_error . $color_error . $weight_error . $gender_error ;
}
//------------------------------------toString--------------------------------------------------
public function __toString()
{
        return $this->error_message;
}
// ---------------------------------- Set Methods ----------------------------------------------
function set_dog_name($value)
{
$error_message = TRUE;
(ctype_alpha($value) && strlen($value) <= 20) ? $this->dog_name = $value : $this->error_message = FALSE;
return $this->error_message;
}
function set_dog_breed($value)
{
$error_message = TRUE;
(ctype_alpha($value) && strlen($value) <= 35) ? $this->dog_breed = $value : $error_message = FALSE;
return $this->error_message;
}
function set_dog_color($value)
{
$error_message = TRUE;
(ctype_alpha($value) && strlen($value) <= 15) ? $this->dog_color = $value : $this->error_message = FALSE;
return $this->error_message;
}
function set_dog_weight($value)
{
$error_message = TRUE;
(ctype_digit($value) && ($value > 0 && $value <= 120)) ? $this->dog_weight = $value : $this->error_message = FALSE;
return $this->error_message;
}
function set_dog_gender($value)
{
$error_message = TRUE;
($value == 'Male' || $value == 'Female') ? $this->dog_gender = $value : $error_message = FALSE;
return $this->error_message;
}
// ----------------------------------------- Get Methods ------------------------------------------------------------
function get_dog_name()
{
return $this->dog_name;
}
function get_dog_weight()
{
return $this->dog_weight;
}
function get_dog_breed()
{
return $this->dog_breed;
}
function get_dog_color()
{
return $this->dog_color;
}
function get_dog_gender()
{
return $this->dog_gender;
}
function get_properties()
{
return "$this->dog_name,$this->dog_breed,$this->dog_color,$this->dog_weight,$this->dog_gender.";
}
}
?>

i tried my best till 2hrs but i got 99% result in it , just try if you still have problem i will fix it , else thumbs up for my hardwork , thanks :)