<?php
    class Employee{
        public $name;
        public $rate;
        public $overtime = array();         public $normaltime = array();         public function __construct($name,$rate) {
            $this->name = $name;
            $this->rate = $rate;
        }
        public function getTotalHoursWorked(){
        }
        public function getSalary(){
            $hours = $this->getTotalHoursWorked();
            $salary= $hours*$this->rate;
            return $salary;
        }
        public function getShortName(){
 
                          while($this->name{$i}!=" "){
                                    $i--;
                                      if ($i<0) break;
                                                     }                                                  
                      $shortname = mb_substr($this->name, 0,$i-2 );                         return $this->name= $shortname.".";
         }
 
    public function getNormalHours() {
 
 
 
    }
    public function  getOvertimeHours(){           //подсчет часов сверх нормы
        foreach ($this->hours as $key => $value) {
 
 
            if ($value >40){
 
       $this->overtime[$key]= $value -40;   }  
        else {$this->overtime[$key]= 0 ;}
 
 
        }
        return $this->overtime;
    }
 
  }
 
 
 
      function padRight($string, $length){
 
      }
             function padLeft($string, $length){
              return $string;
        }
 
 
 
        $ivan = new Employee("Иван Иванов", 10);
        $ivan ->hours = array(40,40,40,40);         $peter = new Employee("Петр Петров", 8);
           $ivan-> getShortName();
          $peter-> getShortName();
        $peter ->hours = array(40,10,40,50);         $peter ->getOvertimeHours();
        $employees = array($ivan,$peter);  
 
 
$col1 = 30;
$col2 = 8;
echo"<pre>";
  echo   padRight("Сотрудник", $col1).
            padLeft("Часы", $col2).
            padLeft("Ставка", $col2).
            padLeft("З/п", $col2). " <br>";
 
  foreach ($employees as $employee) {
    echo padRight($employee->name, $col1) .
         padLeft($employee->getTotalHoursWorked(), $col2) . 
         padLeft($employee->rate, $col2) . 
         padLeft($employee->getSalary(), $col2) . "<br>";
 
 
}
var_dump($ivan->getOvertimeHours()); //подсчет часов сверх нормы         ?>
 
 
				CiAgICAgICAgPD9waHAKICAgIGNsYXNzIEVtcGxveWVlewogICAgICAgIHB1YmxpYyAkbmFtZTsKICAgICAgICBwdWJsaWMgJHJhdGU7CiAgICAgICAgcHVibGljICRob3VycyA9IGFycmF5KCk7CiAgICAgICAgcHVibGljICRvdmVydGltZSA9IGFycmF5KCk7CiAgICAgICAgcHVibGljICRub3JtYWx0aW1lID0gYXJyYXkoKTsKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG5hbWUsJHJhdGUpIHsKICAgICAgICAgICAgJHRoaXMtPm5hbWUgPSAkbmFtZTsKICAgICAgICAgICAgJHRoaXMtPnJhdGUgPSAkcmF0ZTsKICAgICAgICB9CiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldFRvdGFsSG91cnNXb3JrZWQoKXsKICAgICAgICAgICAgcmV0dXJuIGFycmF5X3N1bSgkdGhpcy0+aG91cnMpOyAKICAgICAgICB9CiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldFNhbGFyeSgpewogICAgICAgICAgICAkaG91cnMgPSAkdGhpcy0+Z2V0VG90YWxIb3Vyc1dvcmtlZCgpOwogICAgICAgICAgICAkc2FsYXJ5PSAkaG91cnMqJHRoaXMtPnJhdGU7CiAgICAgICAgICAgIHJldHVybiAkc2FsYXJ5OwogICAgICAgIH0KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U2hvcnROYW1lKCl7CiAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAkaT0gbWJfc3RybGVuKCR0aGlzLT5uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSgkdGhpcy0+bmFtZXskaX0hPSIgIil7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpPDApIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgJHNob3J0bmFtZSA9IG1iX3N1YnN0cigkdGhpcy0+bmFtZSwgMCwkaS0yICk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bmFtZT0gJHNob3J0bmFtZS4iLiI7CiAgICAgICAgIH0KICAgICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGdldE5vcm1hbEhvdXJzKCkgewogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgfQogICAgcHVibGljIGZ1bmN0aW9uICBnZXRPdmVydGltZUhvdXJzKCl7ICAgICAgICAgICAvL9C/0L7QtNGB0YfQtdGCINGH0LDRgdC+0LIg0YHQstC10YDRhSDQvdC+0YDQvNGLCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmhvdXJzIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgICAgICBpZiAoJHZhbHVlID40MCl7CiAgICAgICAgICAgICAgICAKICAgICAgICR0aGlzLT5vdmVydGltZVska2V5XT0gJHZhbHVlIC00MDsgICB9ICAKICAgICAgICBlbHNlIHskdGhpcy0+b3ZlcnRpbWVbJGtleV09IDAgO30KICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPm92ZXJ0aW1lOwogICAgfQogICAgCiAgfQogICAgICAgICAgCiAgICAgICAKICAgICAgIAogICAgICBmdW5jdGlvbiBwYWRSaWdodCgkc3RyaW5nLCAkbGVuZ3RoKXsKICAgICAgICAgICAgcmV0dXJuICRzdHJpbmcuPSBzdHJfcmVwZWF0KCIgIiwgJGxlbmd0aC1tYl9zdHJsZW4oJHN0cmluZykpOwogICAgICAgICAgICAgCiAgICAgIH0KICAgICAgICAgICAgIGZ1bmN0aW9uIHBhZExlZnQoJHN0cmluZywgJGxlbmd0aCl7CiRzdHJpbmcgPSBzdHJfcmVwZWF0KCIgIiwgJGxlbmd0aC1tYl9zdHJsZW4oJHN0cmluZykpIC4kc3RyaW5nOwogICAgICAgICAgICAgIHJldHVybiAkc3RyaW5nOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICAkaXZhbiA9IG5ldyBFbXBsb3llZSgi0JjQstCw0L0g0JjQstCw0L3QvtCyIiwgMTApOwogICAgICAgICRpdmFuIC0+aG91cnMgPSBhcnJheSg0MCw0MCw0MCw0MCk7CiAgICAgICAgJHBldGVyID0gbmV3IEVtcGxveWVlKCLQn9C10YLRgCDQn9C10YLRgNC+0LIiLCA4KTsKICAgICAgICAgICAkaXZhbi0+IGdldFNob3J0TmFtZSgpOwogICAgICAgICAgJHBldGVyLT4gZ2V0U2hvcnROYW1lKCk7CiAgICAgICAgJHBldGVyIC0+aG91cnMgPSBhcnJheSg0MCwxMCw0MCw1MCk7CiAgICAgICAgJHBldGVyIC0+Z2V0T3ZlcnRpbWVIb3VycygpOwogICAgICAgICRlbXBsb3llZXMgPSBhcnJheSgkaXZhbiwkcGV0ZXIpOwogICAgIAogICAKICAgIAokY29sMSA9IDMwOwokY29sMiA9IDg7CmVjaG8iPHByZT4iOwogIGVjaG8gICBwYWRSaWdodCgi0KHQvtGC0YDRg9C00L3QuNC6IiwgJGNvbDEpLgogICAgICAgICAgICBwYWRMZWZ0KCLQp9Cw0YHRiyIsICRjb2wyKS4KICAgICAgICAgICAgcGFkTGVmdCgi0KHRgtCw0LLQutCwIiwgJGNvbDIpLgogICAgICAgICAgICBwYWRMZWZ0KCLQly/QvyIsICRjb2wyKS4gIiA8YnI+IjsKICAKICBmb3JlYWNoICgkZW1wbG95ZWVzIGFzICRlbXBsb3llZSkgewogICAgZWNobyBwYWRSaWdodCgkZW1wbG95ZWUtPm5hbWUsICRjb2wxKSAuCiAgICAgICAgIHBhZExlZnQoJGVtcGxveWVlLT5nZXRUb3RhbEhvdXJzV29ya2VkKCksICRjb2wyKSAuIAogICAgICAgICBwYWRMZWZ0KCRlbXBsb3llZS0+cmF0ZSwgJGNvbDIpIC4gCiAgICAgICAgIHBhZExlZnQoJGVtcGxveWVlLT5nZXRTYWxhcnkoKSwgJGNvbDIpIC4gIjxicj4iOwogICAKICAgCn0KdmFyX2R1bXAoJGl2YW4tPmdldE92ZXJ0aW1lSG91cnMoKSk7IC8v0L/QvtC00YHRh9C10YIg0YfQsNGB0L7QsiDRgdCy0LXRgNGFINC90L7RgNC80YsKICAgICAgICA/PgoK