Accesarea metodelor în interiorul claselor în OOP în PHP

Unele metode pot fi apelate în interiorul altora prin $this. Să vedem un exemplu. Să presupunem că avem o clasă cu utilizator și o metodă, care returnează o proprietate:

php<?php
  class User {
    public $name;
    
    public function show() {
      return $this->name;
    }
  }
?>

Să presupunem că avem și metoda cape, care transformă prima literă a șirului în majusculă:

php<?php
  class User {
    public $name;
    
    public function show() {
      return $this->name;
    }
    
    public function cape($str) {
      return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
    }
  }
?>

Să folosim metoda cape în interiorul metodei show:

php<?php
  class User {
    public $name;
    
    public function show() {
      return $this->cape($this->name);
    }
    
    public function cape($str) {
      return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
    }
  }
?>
Задание 1

Creați clasa Student cu proprietățile name și surn.

Задание 2

Creați o metodă auxiliară, care va primi primul simbol al șirului și îl va face majusculă.

Задание 3

Creați o metodă care va returna inițialele studentului, adică primele litere ale numelui și prenumelui său.