Skip to content

Instantly share code, notes, and snippets.

@deuterium7
Last active August 5, 2017 14:56
Show Gist options
  • Save deuterium7/0bfbfac3f0058719e83e1c90277cd4d2 to your computer and use it in GitHub Desktop.
Save deuterium7/0bfbfac3f0058719e83e1c90277cd4d2 to your computer and use it in GitHub Desktop.
Zabornyi Alex
  1. Сделайте класс Worker, в котором будут следующие public поля - name (имя), age (возраст), salary (зарплата). Создайте объект этого класса, затем установите поля в следующие значения (не в __construct, а для созданного объекта) - имя 'Иван', возраст 25, зарплата 1000. Создайте второй объект этого класса, установите поля в следующие значения - имя 'Вася', возраст 26, зарплата 2000. Выведите на экран сумму зарплат Ивана и Васи. Выведите на экран сумму возрастов Ивана и Васи.

Worker.php

<?php
	class Worker
	{
		public $name;
		public $age;
		public $salary;
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('Worker.php');

	$workerIvan = new Worker();
	$workerIvan->name = 'Иван';
	$workerIvan->age = 25;
	$workerIvan->salary = 1000;

	$workerVasya = new Worker();
	$workerVasya->name = 'Вася';
	$workerVasya->age = 26;
	$workerVasya->salary = 2000;

	$sumSalary = $workerIvan->salary + $workerVasya->salary;
	$sumAge = $workerIvan->age + $workerVasya->age;

	echo "Сумма зарплат: $sumSalary<br>";
	echo "Сумма возрастов: $sumAge<br>";
?>

  1. Сделайте класс Worker, в котором будут следующие private поля - name (имя), age (возраст), salary (зарплата) и следующие public методы setName, getName, setAge, getAge, setSalary, getSalary. Создайте 2 объекта этого класса: 'Иван', возраст 25, зарплата 1000 и 'Вася', возраст 26, зарплата 2000. Выведите на экран сумму зарплат Ивана и Васи. Выведите на экран сумму возрастов Ивана и Васи.

Worker.php

<?php
	class Worker
	{
		private $name;
		private $age;
		private $salary;

		//	SETERS
		public function setName($name) {
			$this->name = $name;
		}

		public function setAge($age) {
			$this->age = $age;
		}

		public function setSalary($salary) {
			$this->salary = $salary;
		}

		//	GETERS
		public function getName() {
			return $this->name;
		}

		public function getAge() {
			return $this->age;
		}

		public function getSalary() {
			return $this->salary;
		}
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('Worker.php');

	$workerIvan = new Worker();
	$workerIvan->setName('Иван');
	$workerIvan->setAge(25);
	$workerIvan->setSalary(1000);

	$workerVasya = new Worker();
	$workerVasya->setName('Вася');
	$workerVasya->setAge(26);
	$workerVasya->setSalary(2000);

	$sumSalary = $workerIvan->getSalary() + $workerVasya->getSalary();
	$sumAge = $workerIvan->getAge() + $workerVasya->getAge();

	echo "Сумма зарплат: $sumSalary<br>";
	echo "Сумма возрастов: $sumAge<br>";
?>

  1. Дополните класс Worker из предыдущей задачи private методом checkAge, который будет проверять возраст на корректность (от 1 до 100 лет). Этот метод должен использовать метод setAge перед установкой нового возраста (если возраст не корректный - он не должен меняться).

Worker.php

<?php
	class Worker
	{
		private $name;
		private $age;
		private $salary;

		//	SETERS
		public function setName($name) {
			$this->name = $name;
		}

		public function setAge($age) {
			$this->age = $age;

			if ( !$this->checkAge() ) {
				echo "Неккоректный возраст '$this->name'<br>";
			}
		}

		public function setSalary($salary) {
			$this->salary = $salary;
		}

		//	GETERS
		public function getName() {
			return $this->name;
		}

		public function getAge() {
			return $this->age;
		}

		public function getSalary() {
			return $this->salary;
		}

		//	OTHER
		private function checkAge() {

			if ( $this->age >= 1 && $this->age <= 100 ) {
				return true;
			} else {
				return false;
			}
		}
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('Worker.php');

	$workerIvan = new Worker();
	$workerIvan->setName('Иван');
	$workerIvan->setAge(101);
	$workerIvan->setSalary(1000);

	$workerVasya = new Worker();
	$workerVasya->setName('Вася');
	$workerVasya->setAge(26);
	$workerVasya->setSalary(2000);

	$sumSalary = $workerIvan->getSalary() + $workerVasya->getSalary();
	$sumAge = $workerIvan->getAge() + $workerVasya->getAge();

	echo "Сумма зарплат: $sumSalary<br>";
	echo "Сумма возрастов: $sumAge<br>";
?>

  1. Сделайте класс Worker, в котором будут следующие private поля - name (имя), salary (зарплата). Сделайте так, чтобы эти свойства заполнялись в методе __construct при создании объекта (вот так: new Worker(имя, возраст) ). Сделайте также public методы getName, getSalary. Создайте объект этого класса 'Дима', возраст 25, зарплата 1000. Выведите на экран произведение его возраста и зарплаты.

Worker.php

<?php
	class Worker
	{
		private $name;
		private $age;
		private $salary;

		public function __construct($name = 'Дима', $age = 25, $salary = 1000) {
			$this->name = $name;
			$this->age = $age;
			$this->salary = $salary;
		}

		//	GETERS
		public function getName() {
			return $this->name;
		}

		public function getAge() {
			return $this->age;
		}

		public function getSalary() {
			return $this->salary;
		}
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('Worker.php');

	$workerDima = new Worker();

	$multiplication = $workerDima->getAge() * $workerDima->getSalary();

	echo "Прозиведение возраста и зарплаты: $multiplication<br>";
?>

  1. Сделайте класс User, в котором будут следующие protected поля - name (имя), age (возраст), public методы setName, getName, setAge, getAge.

User.php

<?php
	class User
	{
		protected $name;
		protected $age;

		//	SETERS
		public function setName($name) {
			$this->name = $name;
		}

		public function setage($age) {
			$this->age = $age;
		}

		//	GETERS
		public function getName() {
			return $this->name;
		}

		public function getAge() {
			return $this->age;
		}
	}
?>

  1. Сделайте класс Worker, который наследует от класса User и вносит дополнительное private поле salary (зарплата), а также методы public getSalary и setSalary. Создайте объект этого класса 'Иван', возраст 25, зарплата 1000. Создайте второй объект этого класса 'Вася', возраст 26, зарплата 2000. Найдите сумму зарплата Ивана и Васи. Сделайте класс Student, который наследует от класса User и вносит дополнительные private поля стипендия, курс, а также геттеры и сеттеры для них.

Worker.php

<?php
	class Worker extends User
	{
		private $salary;

		public function setSalary($salary) {
			$this->salary = $salary;
		}

		public function getSalary() {
			return $this->salary;
		}
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('User.php');
	include('Worker.php');

	$workerIvan = new Worker();
	$workerIvan->setName('Иван');
	$workerIvan->setAge(25);
	$workerIvan->setSalary(1000);

	$workerVasya = new Worker();
	$workerVasya->setName('Вася');
	$workerVasya->setAge(26);
	$workerVasya->setSalary(2000);

	$sumSalary = $workerIvan->getSalary() + $workerVasya->getSalary();
	$sumAge = $workerIvan->getAge() + $workerVasya->getAge();

	echo "Сумма зарплат: $sumSalary<br>";
	echo "Сумма возрастов: $sumAge<br>";
	
?>

Student.php

<?php
	class Student extends User
	{
		private $stipend;
		private $course;

		//	SETERS
		public function setStipend($stipend) {
			$this->stipend = $stipend;
		}

		public function setCourse($course) {
			$this->course = $course;
		}

		//	GETERS
		public function getStipend() {
			return $this->stipend;
		}

		public function getCourse() {
			return $this->course;
		}
	}
?>

  1. Сделайте класс Driver (Водитель), который будет наследоваться от класса Worker из предыдущей задачи. Этот метод должен вносить следующие private поля: водительский стаж, категория вождения (A, B, C).

Driver.php

<?php
	class Driver extends Worker
	{
		private $experience;
		private $category;

		public function __construct($experience, $category) {
			$this->experience = $experience;
			$this->category = $category;
		}

		//	SETERS
		public function setExperience() {
			$this->experience = $experience;
		}

		public function setCategory() {
			$this->category = $category;
		}

		//	GETERS
		public function getExperience() {
			return $this->experience;
		}

		public function getCategory() {
			return $this->category;
		}
	}
?>

  1. Создайте класс Form - оболочку для создания форм. Он должен иметь методы input, submit, password, textarea, open, close. Каждый метод принимает массив атрибутов.

Form.php

<?php
	class Form
	{
		public function printHtml($arrayAtributes, $html) {

			foreach ($arrayAtributes as $key => $value) {
				$html .= " $key='$value'";
			}

			$html .= ">";
			
			return $html;
		}

		public function open($arrayAtributes) {
			$html = "<form";
			$html = $this->printHtml($arrayAtributes, $html);

			return $html;
		}

		public function input($arrayAtributes) {
			$html = "<input";
			$html = $this->printHtml($arrayAtributes, $html);
			
			return $html;
		}

		public function password($arrayAtributes) {
			$html = "<input type='password'";
			$html = $this->printHtml($arrayAtributes, $html);
			
			return $html;
		}

		public function submit($arrayAtributes) {
			$html = "<input type='submit'";
			$html = $this->printHtml($arrayAtributes, $html);
			
			return $html;
		}

		public function close() {
			return "</form>";
		}
	}
?>

index.php

<?php
	ini_set(display_errors, 1);

	include('Form.php');

	$form = new Form();

	echo $form->open(['action'=>'index.php', 'method'=>'POST']);
    	echo $form->input(['type'=>'text', 'placeholder'=>'Ваше имя', 'name'=>'name']);
    	echo $form->password(['placeholder'=>'Ваш пароль', 'name'=>'pass']);
    	echo $form->submit(['value'=>'Отправить']);
    	echo $form->close();
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment