<?php
interface Interfaze {
public function hello($name);
}
class ParentClazz implements Interfaze {
public function __construct() {
$this->hello();
}
public function hello($name) {
echo "Hello, $name!";
}
}
class ChildClazz extends ParentClazz {
public function __construct() {
echo "Loaded from the child class.";
parent::__construct();
}
}
$childclass = new ChildClazz("Matthew");
Loaded from the child class.
Fatal error: Uncaught ArgumentCountError: Too few arguments to function ParentClazz::hello(), 0 passed in /in/hFKFj on line 11 and exactly 1 expected in /in/hFKFj:14
Stack trace:
#0 /in/hFKFj(11): ParentClazz->hello()
#1 /in/hFKFj(23): ParentClazz->__construct()
#2 /in/hFKFj(27): ChildClazz->__construct('Matthew')
#3 {main}
thrown in /in/hFKFj on line 14
Process exited with code 255.
Loaded from the child class.
Warning: Missing argument 1 for ParentClazz::hello(), called in /in/hFKFj on line 11 and defined in /in/hFKFj on line 14
Notice: Undefined variable: name in /in/hFKFj on line 15
Hello, !