…lass name
The default spl_autoload() implementation lowercased the class name
before appending the file extension, so a class like MyClass would
only autoload from myclass.php, never MyClass.php. This is fine on
case-insensitive filesystems (macOS, Windows) but breaks autoloading
of any non-lowercase-named class on case-sensitive filesystems
(Linux) unless the file on disk happens to be lowercase.
zend_hash_exists() against EG(class_table) still uses a lowercased
copy of the name, since the class table itself remains keyed by
lowercase name.
The default spl_autoload() implementation lowercased the class name before appending the file extension, so a class like MyClass would only autoload from myclass.php, never MyClass.php. This is fine on case-insensitive filesystems (macOS, Windows) but breaks autoloading of any non-lowercase-named class on case-sensitive filesystems (Linux) unless the file on disk happens to be lowercase.
This change breaks backward compatibility of spl autoloading; I'm not sure where it should be fixed, master or PHP 8.4. Or maybe it should be deprecated first?