<?php
# The blueprint for designing creatures for your game
interface LivingBeing {
public function dealDamage( $idamage);
public function takeDamage( $idamage);
}
class Human implements LivingBeing {
private $hp = 150;
public function dealDamage( $damage) {
}
public function takeDamage( $damage) {
}
}
class Elf implements LivingBeing {
private $hp = 100;
public function dealDamage($damage) {
}
public function takeDamage($damage) {
}
}
class Dwarf implements LivingBeing {
private $hp = 300;
public function dealDamage($damage) {
}
public function takeDamage($damage) {
}
}
# I am a junior dev, I am just going to write this code
class Centuar {
private $hp = 300;
public function dealDamage($opponent) {
$opponent->takeDamage(4);
}
public function takeDamage($damage) {
}
}
class Orc {
private $hp = 300;
public function dealDamage($damage) {
}
}
$Adam = new Human;
$Lucas = new Elf;
$Jack = new Dwarf;
# Let's fight!
$Gabrielle = new Centuar;
$Guthakug = new Orc;
$Gabrielle->dealDamage($Guthakug);
Fatal error: Uncaught Error: Call to undefined method Orc::takeDamage() in /in/dRS6a:46
Stack trace:
#0 /in/dRS6a(72): Centuar->dealDamage(Object(Orc))
#1 {main}
thrown in /in/dRS6a on line 46
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught Error: Call to undefined method Orc::takeDamage() in /in/dRS6a:46
Stack trace:
#0 /in/dRS6a(72): Centuar->dealDamage(Object(Orc))
#1 {main}
thrown in /in/dRS6a on line 46
Process exited with code 255.