Усулҳои муҳофизатшуда дар ООП дар PHP

PHP усулҳои муҳофизатшударо тавассути тағйирдиҳандаи protected дастгирӣ мекунад. Чунин усулҳо мерос гирифта мешаванд, аммо аз беруни синф дида намешаванд.

Биёед бубинем, ки ин чӣ тавр кор мекунад. Синфи волидайн бо усули муҳофизатшуда менависем:

php<?php
  class User {
    public function setName($name) {
      $this->name = $name;
    }
    public function getName() {
      return $this->capeFirst($this->name);
    }
    
    protected function capeFirst($str) {
      return ucfirst($str);
    }
  }
?>

Аз ин усули муҳофизатшуда дар синфи фарзанд истифода барем:

php<?php
  class Student extends User {
    public function setSurn($surn) {
      $this->surn = $surn;
    }
    public function getSurn() {
      return $this->capeFirst($this->surn);
    }
  }
?>
Задание 1

Дар рамзи зерин усули ёрирасонро муҳофизатшуда кунед:

php<?php
  class User {
    public function setName($name) {
      if ($this->notEmpty($name)) {
        $this->name = $name;
      }
    }
    public function getName() {
      return $this->name;
    }
    
    public function notEmpty($str) {
      return strlen($str) > 0;
    }
  }
  class Employee extends User {
    public function setSurn($surn) {
      if ($this->notEmpty($surn)) {
        $this->surn = $surn;
      }
    }
    public function getSurn() {
      return $this->surn;
    }
  }
?>