Classes that are created in eval() are not the same classes:
eval()
function test3($test) { return eval("return new class($test) { public function __construct(public \$test) {}};" ); } compare(test3(1), test3(1)); // false, false, false,