Uebungsaufgaben_PHP_SS_25/Examples/Class.php
2025-02-12 10:42:10 +01:00

85 lines
2.3 KiB
PHP

<?php
class Human
{
// Konstanten (Konstanten sind immer öffentlich)
const SPECIES = "Homo sapiens";
// Eigenschaften (Membervariablen)
private $firstName;
private $lastName;
private $age;
// Statische Eigenschaft
private static $populationCount = 0;
// Konstruktor
public function __construct($firstName, $lastName, $age)
{
$this->firstName = $firstName;
$this->lastName = $lastName;
$this->age = $age;
// Bei jedem neuen Human wird die Population erhöht
self::$populationCount++;
}
// Getter für den Vornamen
public function getFirstName()
{
return $this->firstName;
}
// Setter für den Vornamen
public function setFirstName($firstName)
{
$this->firstName = $firstName;
}
// Eine Methode, die den vollständigen Namen zurückgibt
public function getFullName()
{
return $this->firstName . " " . $this->lastName;
}
// Eine Methode, die das Alter zurückgibt
public function getAge()
{
return $this->age;
}
// Eine Methode, die das Alter setzt
public function setAge($age)
{
$this->age = $age;
}
// Eine Methode, die die Population zurückgibt
public static function getPopulationCount()
{
return self::$populationCount;
}
// Destruktor
public function __destruct()
{
// Bei jeder Zerstörung eines Human wird die Population verringert
self::$populationCount--;
}
}
$human1 = new Human("John", "Doe", 30);
echo "Vorname: " . $human1->getFirstName() . "\n";
echo "Vollständiger Name: " . $human1->getFullName() . "\n";
echo "Alter: " . $human1->getAge() . "\n";
echo "Population: " . Human::getPopulationCount() . "\n";
$human2 = new Human("Jane", "Doe", 25);
echo "Population nach dem Erstellen eines zweiten Menschen: " . Human::getPopulationCount() . "\n";
// Zerstörung von $human1
unset($human1);
echo "Population nach der Zerstörung des ersten Menschen: " . Human::getPopulationCount() . "\n";
?>