It should be noted, that calling spl_autoload_call on a child class, and then on its parent class, throws a fatal error.
This happens because autoloading the child class also loads the class it extends. And since spl_autoload_call forcibly calls the registered autoload function(s), not taking into account whether the class exists, a fatal error is thrown:
File: child.class.php
<?php
class Child extends Parent () {
public function __construct () {
parent::__construct();
}
}
?>
File: parent.class.php
<?php
class Parent () {
public function __construct () {
}
}
?>
File: autoload.php
<?php
/* works fine */
spl_autoload_call('Child');
/* throws: Fatal error: Cannot redeclare class Parent in /parent.class.php on line 2 */
spl_autoload_call('Parent');
?>
spl_autoload_call
(PHP 5 >= 5.1.2)
spl_autoload_call — آزمایش تمام توابع registered __autoload() برای بارگذاری کلاس خواسته شده
Description
void spl_autoload_call
( string $class_name
)
این تابع برای جستجوی دستی کلاس یا واسط با استفاده از توابع registered __autoload به کار میرود.
Parameters
- class_name
-
نام کلاس برای جستجو.
Return Values
No value is returned.
k dot varmark at gmail dot com ¶
2 years ago
