<?php
$alias_list = [];
$alias_autoloader = function($class_name) use (&$alias_list) {
if (isset($alias_list[strtolower($class_name)])) {
class_alias($class_name, $alias_list[strtolower($class_name)]);
return true;
}
};
$alias = function($from, $to) use (&$alias_list) {
$alias_list[$to] = $from;
};
spl_autoload_register($alias_autoloader);
class Foo
{
function test() {
return get_class_name($this);
}
}
class BarCollision extends Foo
{
}
$alias('Bar', 'Foo');
$alias('BarCollision', 'Foo');
$b = new Bar;
$c = new BarCollision;
var_dump($b->test(), $c->test());
- Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- Fatal error: Uncaught Error: Class "Bar" not found in /in/X2eID:35
Stack trace:
#0 {main}
thrown in /in/X2eID on line 35
Process exited with code 255. - Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
- Fatal error: Uncaught Error: Class 'Bar' not found in /in/X2eID:35
Stack trace:
#0 {main}
thrown in /in/X2eID on line 35
Process exited with code 255. - Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
- Fatal error: Class 'Bar' not found in /in/X2eID on line 35
Process exited with code 255.
preferences:
181.49 ms | 402 KiB | 228 Q