Вопросы к решению задания из урока 67 по курсу php?
Итак, в конце есть д/з
Напишите самостоятельно класс Animal. От класса Animal должен наследоваться класс Dog и класс Cat. Создайте экземпляры классов Dog и Cat. Собака должна уметь лаять, а кошка мяукать. У животных должно быть имя, раскраска, порода, возраст.
Дополнительное задание: В цикле создайте 50 кошек и 50 собак с любыми параметрами.
Если просто создать классы понял как, то доп задания пошло трудновато. В гугле поискал как можно вывести рендомное значения из массива, и так и реализовал. Но уверен что это немного не так, и можно сделать куда проще. Кто подскажет как? Или раздуплит как надо было это сделать.
Основные вопросы начинаются после "function say()"
Мой код
<?php
class Animal {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function say() {
$color = array('red', 'green', 'blue');
$number = mt_rand(0, count($color) - 1);
$poroda = array('dvornyaga', 'porodistaya');
$number1 = mt_rand(0, count($poroda) - 1);
$age = array(2, 8, 15, 3, 4, 5);
$number2 = mt_rand(0, count($age) - 1);
echo "My name is ".$this->name." and my color is ".$color[$number]." and my poroda is ".$poroda[$number1]." and my age is ".$age[$number2]." and ";
}
}
class Dog extends Animal {
public function gav(){
echo "gav gav gav";
}
}
class Cat extends Animal {
public function meow(){
echo "meow, meow, meow";
}
}
for ($i=0; $i < 10; $i++) {
$Dog = new Dog("Chibo");
$Dog->say();
$Dog->gav();
echo "<br>";
}
?>
3 ответов
Почти такое же решения и у меня. Спасибо.
<?php
class Animal {
private $name;
private $color;
private $breed;
private $age;
public function __construct($name, $color, $breed, $age) {
$this->name = $name;
$this->color = $color;
$this->breed = $breed;
$this->age = $age;
}
public function say(){
echo "ee имя - ".$this->name.", окраска - ".$this->color.", порода - ".$this->breed.", возраст - ".$this->age;
}
}
class Cat extends Animal {
public function meow() {
echo "МЯУ!";
}
}
class Dog extends Animal {
public function bark() {
echo "ГАВ!";
}
}
$randName = array("Айли","Птолемей","Жук","Чауст","Аркон","Рыжик","Фокс","Скейч","Пророк","Челли","Найт","Кельт","Акбай");
$randColor = array("Черный","Пятнистый","Белый","Коричневый","Серый");
$randCatBreed = array("Сиамская","Сибирская","Персидская","Норвежская лесная","Уральский рекс","Японский бобтейл","Корат");
$randDogBreed = array("Акита-ину","Бордер-колли","Кеесхонд","Немецкая овчарка","Фокстерьер","Такса","Эрдельтерьер");
for ($i = 0; $i < 50; $i++) {
$rName = mt_rand(0, count($randName) - 1);
$rColor = mt_rand(0, count($randColor) - 1);
$rBreed = mt_rand(0, count($randCatBreed) - 1);
$cat = new Cat($randName[$rName], $randColor[$rColor], $randCatBreed[$rBreed], rand(1 ,15));
$cat->meow();
$cat->say();
echo"<br>";
}
for ($i = 0; $i < 50; $i++) {
$rName = mt_rand(0, count($randName) - 1);
$rColor = mt_rand(0, count($randColor) - 1);
$rBreed = mt_rand(0, count($randDogBreed) - 1);
$dog = new Dog($randName[$rName], $randColor[$rColor], $randDogBreed[$rBreed], rand(1 ,15));
$dog->bark();
$dog->say();
echo"<br>";
}
?>
Вот в вопросе есть решение:
<?php
class Animal{
private $name;
private $color;
private $breed;
private $age;
public function __construct( $name, $color, $breed, $age){
$this->name = $name;
$this->color = $color;
$this->breed = $breed;
$this->age = $age;
}
public function say(){
echo "ee имя - ".$this->name.", окраска - ".$this->color.", порода - ".$this->breed.", возраст - ".$this->age;
}
}
class Cat extends Animal{
public function catSay(){
echo "Это кошка ";
}
}
class Dog extends Animal{
public function dogSay() {
echo "Это собака ";
}
}
/* Массивы с именами, окраской, породой */
$randName = array("Айли","Птолемей","Жук","Чауст","Аркон","Рыжик","Фокс","Скейч","Пророк","Челли","Найт","Кельт","Акбай");
$randColor = array("Черный","Пятнистый","Белый","Коричневый","Серый");
$randCatBreed = array("Сиамская","Сибирская","Персидская","Норвежская лесная","Уральский рекс","Японский бобтейл","Корат");
$randDogBreed = array("Акита-ину","Бордер-колли","Кеесхонд","Немецкая овчарка","Фокстерьер","Такса","Эрдельтерьер");
/*
* Функции для рандомизации: rand и mt_rand.
* Документация про эти функции: http://php.net/manual/ru/function.mt-rand.php
* Документация про эти функции: http://php.net/manual/ru/function.rand.php
*/
for ($i = 0; $i <= 50; $i++) {
$rName = mt_rand(0, count($randName) - 1);
$rColor = mt_rand(0, count($randColor) - 1);
$rBreed = mt_rand(0, count($randCatBreed) - 1);
$cat = new Cat($randName[$rName], $randColor[$rColor], $randCatBreed[$rBreed], rand(1 ,15));
$cat->catSay();
$cat->say();
echo"<br>";
}
for ($i = 0; $i <= 50; $i++) {
$rName = mt_rand(0, count($randName) - 1);
$rColor = mt_rand(0, count($randColor) - 1);
$rBreed = mt_rand(0, count($randDogBreed) - 1);
$dog = new Dog($randName[$rName], $randColor[$rColor], $randDogBreed[$rBreed], rand(1 ,15));
$dog->dogSay();
$dog->say();
echo"<br>";
}
?>