<?php // Animal.php
namespace Animals;
class Animal {
public function __construct(protected string $noise){}
protected function makeNoise(): void {
echo ucwords("{$this->noise}!");
}
}
// elsewhere, in a separate file...
<?php // Rat.php
namespace Animals/Mammals;
use Animals/Animal;
class Rat extends Animal {
public function __construct(){
Animal::__construct("squeak");
echo $this->makeNoise(); // Squeak!
}
}
<?php // Animal.php
namespace Animals;
class Animal {
public function __construct(protected string $noise){}
protected function makeNoise(): void {
echo ucwords("{$this->noise}!");
}
}
// elsewhere, in a separate file...
<?php // Rat.php
namespace Animals/Mammals;
use Animals/Animal;
class Rat extends Animal {
public function __construct(){
Animal::__construct("squeak");
echo $this->makeNoise(); // Squeak!
}
}