|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #51150 spl_autoload_extensions() should accept arrays to avoid invalid separators
Submitted: 2010-02-25 20:22 UTC Modified: 2020-11-18 14:12 UTC
Avg. Score:4.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: jo at feuersee dot de Assigned:
Status: Suspended Package: SPL related
PHP Version: 5.3.1 OS: *
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2010-02-25 20:22 UTC] jo at feuersee dot de
spl_autoload_extensions() accepts a string with a , separated list of
filename parts to register for autoloading.
This results in filenames containing a , as an extension filename
become impossible to register.
It should be possible to pass an array to circumvent any restriction
cased by the string based argument.

I know that ppl might consider it strange to use , as part of a

IMHO there may be cases where it might be necessary. Considering that
arrays are a native PHP data type, it would be a better design.

Reproduce code:
spl_autoload_extensions(array('.class.php', '.php'));

Expected result:
Hello world

Actual result:
Warning: spl_autoload_extensions() expects parameter 1 to be string,
array given in [test.php] on line ## 
Fatal error: Class 'myclass' not found in [test.php] on line ## 


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2010-03-01 20:05 UTC]
-Package: Feature/Change Request +Package: SPL related
 [2010-03-01 21:16 UTC]
-Operating System: Any +Operating System: *
 [2010-03-02 03:27 UTC]
Using implode() would really be enough here, I'm not sure whether we should add that option or not, but it is indeed not a bad idea.

As a workaround you may want to do:
spl_autoload_extensions(implode(',', $extensions));
 [2010-03-02 09:21 UTC] jo at feuersee dot de
This is not about that I have a list of extensions in an array and that I am
unable to use implode to pass this to spl_autoload_extension() as a string.

This bug report is about that the design of spl_autoload_extension() would be
better if it accepts an array.
Using a whatether separated string implies that the whatether character can't be
a valid part of the argument list. An array does not have this limitation.
 [2020-11-18 14:12 UTC]
-Status: Open +Status: Suspended
 [2020-11-18 14:12 UTC]
At this point in time, it may be more appropriate to deprecate
spl_autoload_extension() and spl_autoload().  If you, or anybody
else, is still interested in this feature, please forward the
request to the internals mailing list for discussion.  For the
time being, I'm suspending this ticket.
PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Mon Mar 27 20:03:38 2023 UTC