Как создать 50 экземпляров класса?

0

Как создать 50 экземпляров класса в цикле?

Пробовал через for  и foreach не получается. Что я делаю не так?

<?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 "породы ".$this->breed." ".$this->color." цвета. Моя кличка - ".$this->name.". Мой возраст - ".$this->age." и ";
}
}


class Dog extends Animal {

public function typeDog() {
echo "Я собака ";
}

public function bark() {
echo "я ляю.";
}
}

class Cat extends Animal {

public function typeCat() {
echo "Я кошка ";
}

public function mew() {
echo "я мяукаю.";
}
}

for ($i=0; $i < 50; $i++) {
foreach ($i as $key => $dog) {
$dog = new Dog("Лаки", "рыжего", "овчарка", "5 лет");
$dog->typeDog();
$dog->say();
$dog->bark();
}
}




echo "<br>";

$cat = new Cat("Муся", "серого", "бенгал", "6 лет");
$cat->typeCat();
$cat->say();
$cat->mew();
php

1 ответов

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 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