Вопросы к решению задания из урока 67 по курсу php?

0

Итак, в конце есть д/з

Напишите самостоятельно класс 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>";
	}
	

	


 ?>
php

3 ответов

0

Почти такое же решения и у меня. Спасибо.

0

<?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>";
}
?>

1

Вот в вопросе есть решение:

https://fructcode.com/ru/qa/kak-v-cikle-sozdat-50-kosek-i-50-sobak-s-lubymi-parametrami-iz-zadania-66-3gennj/

<?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>";
	}
 ?>
Sign up or Log in to write an answer