Посмотрите насколько хорош/плох код к уроку 67 php?
0
Написал код для 67 задания, он работает, но хотел бы узнать мнение что лишнее в коде и как улучшить?
<?php
//Наследование
/* Родительский класс */
class Animal
{
private $name;
private $color;
private $breed;
private $age;
/* Конструктор (в нем мы задаем поле $name и др при создании экземпляра класса) */
public function __construct($name, $color, $breed, $age)
{
$this->name = $name;
$this->color = $color;
$this->breed = $breed;
$this->age = $age;
}
/* Метод say(). Предполагаем, что Animal имеет определенные черты */
public function chars()
{
echo "Меня зовут ".$this->name . " у меня " . $this->color . " шерсть, моя порода " .$this->breed . " и мне " .$this->age . " лет" ;
}
}
/* Класс Dog. Ключевым словом extends мы наследуем родителя Animal */
class Dog extends Animal
{
public function dogSound()
{
echo ". ГАВ!! ГАВ!! ГАВ!!";
}
}
class Cat extends Animal
{
public function catSound()
{
echo ". МЯУ!! МЯУ!! МЯУ!!";
}
}
//Генерим случайное имя и породу
function randomName($length = 4) {
static $randStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rand = '';
for($i=0; $i<$length; $i++) {
$key = rand(0, strlen($randStr)-1);
$rand .= $randStr[$key];
}
return $rand;
}
//Генерим случайный возраст
function randomAge($length = 2) {
static $randStr = '0123456789';
$rand = '';
for($i=0; $i<$length; $i++) {
$key = rand(0, strlen($randStr)-1);
$rand .= $randStr[$key];
}
return $rand;
}
//Генерим случайный цвет и породу
function randomBreed($length = 8) {
static $randStr = 'abcdefghijklmnopqrstuvwxyz';
$rand = '';
for($i=0; $i<$length; $i++) {
$key = rand(0, strlen($randStr)-1);
$rand .= $randStr[$key];
}
return $rand;
}
$i = 1;
while ($i <= 50):
/* Создаем экземпляр класса Dog и вызываем методы. */
$dog = new Dog (randomName(), randomBreed(), randomBreed(), randomAge());
$dog->chars();
$dog->dogSound();
echo "<br>";
$cat = new Cat (randomName(), randomBreed(), randomBreed(), randomAge());
$cat->chars();
$cat->catSound();
echo "<br>";
$i++;
endwhile;