问题描述,今天看了下composer的autoload,指向的autoload_real.php中有这样一句代码:
spl_autoload_register(array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader'), true, true);
php手册给出的spl_autoload_register的第一个参数的描述是:
autoload_function
欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。
手册说的是第一个参数是函数,如果不提供的话,则默认实现函数spl_autoload()。
autoload_real.php里面的类名是:ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788,
类里面的有个静态方法loadClassLoader($class)。
想了想,如果array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader'),第一个成员是类名,第二个成员是静态方法名的话,是不是说就等同于self::loadClassLoader()。但是问题是,loadClassLoader的参数怎么带上去呢? 实在是想不通。
最后自己做了个实践,自己闯了个类,创了个静态方法,自己模仿上述的array方式,结果function并没有被执行,只是老老实实的创建了一个array数组出来??那么composer里面那一行代码是干嘛的呢?望知悉的前辈传教。