<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
abstract class papa {
public function papa() {
var_dump(__CLASS__ . '-' . __FUNCTION__);
}
}
class son extends papa {
public function son() {
var_dump(__CLASS__ . '-' . __FUNCTION__);
parent::__construct();
}
}
abstract class mama {
public function __construct() {
var_dump(__CLASS__ . '-' . __FUNCTION__);
}
public function mama() {
var_dump(__CLASS__ . '-' . __FUNCTION__);
}
}
class daughter extends mama {
public function daughter() {
var_dump(__CLASS__ . '-' . __FUNCTION__);
parent::__construct();
}
}
var_dump('DAUGHTER');
$girl = new daughter();
var_dump('SON');
$boy = new son();
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; papa has a deprecated constructor in /in/fZoDN on line 6
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; son has a deprecated constructor in /in/fZoDN on line 12
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; daughter has a deprecated constructor in /in/fZoDN on line 29
string(8) "DAUGHTER"
string(17) "daughter-daughter"
string(16) "mama-__construct"
string(3) "SON"
string(7) "son-son"
string(9) "papa-papa"