Method for validating call-back functions

php.internals

Aidan Lister

22 years ago
Hey, I was messing around with array_walk[_recursive] and found the behaviour it uses to validate callback functions completely different to other standard functions. array_walk_recursive http://lxr.php.net/source/php-src/ext/standard/array.c#1111 array_filter http://lxr.php.net/source/php-src/ext/standard/array.c#3973 array_map http://lxr.php.net/source/php-src/ext/standard/array.c#4065 Now, apart from the internal differences, the external differences are quite apparent. array_walk[_recursive] called with an array('foo','bar') as a callback will throw a E_FATAL * reproduce: php -r '$var=array('foo','bar'); array_walk_recursive($var, array('foo','bar'));' Compared to only an E_WARNING for other functions. * reproduce: php -r '$var=array('foo','bar'); array_filter($var, array('foo','bar'));' Is there a good reason for this? Perhaps we could implement a standard method for such validation? On a side note, with php_error_docref errors, please don't add a full stop to the end of the error message! Kind Regards, Aidan Lister