code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| <?php class myParent { protected final function __construct(){} public static function getInstance() { static $instances; $classname = get_class(); if (!isset($instances[$classname])) { $instances[$classname] = new $classname(); } return $instances[$classname]; } } class myChild extends myParent { ........ } print_r(myChild::getInstance()); ?> |
Output:myParent Object ( )
Probleem is dat ik nu als nog een myParent object terug krijg ipv een myChild, omdat get_class de class terug geeft van de class waarin het aangeroepen wordt en geen rekening houdt met de over erving. Nu vroeg ik me af of er echt geen mogelijkheid is om een myChild object terug te krijgen zonder dat ik in myChild de getInstance functie moet overschrijven? Want dat haalt de hele OOP gedachte gang onderuit.
[ Voor 4% gewijzigd door Uhmmie op 23-04-2008 21:32 . Reden: output toegevoegd. ]
Currently playing: MTG Arena (PC)