====== PHP RFC: DocComments For Function Parameters ====== * Version: 0.9 * Date: 2026-02-21 * Author: Christian Schneider, cschneid@cschneid.com * Status: Under Discussion * Implementation: https://github.com/php/php-src/compare/master...chschneider:php-src:param-doccomment-part1 ===== Introduction ===== PHP supports DocComments with the getDocComment() function in various Reflection classes but not in ReflectionParameter. Function parameters are currently documented with @param in the function DocComment block: /** * Search for entries matching query * @param string $query Terms to search for in database * @param int $num Maximum number of entries returned, default is 10 */ function search(string $query, int $num = 10) { ... } The downside of this is that the parameters and their types have to be mentioned twice (DocComment and parameter list) and the documentation can diverge from the implementation. ===== Proposal ===== We propose adding DocComment support for function parameters (all the way to the end of the parameter definition, i.e. up to the comma starting the next parameter) and a new function in the ReflectionParameter class public function getDocComment(): string|false {} which would allow the example above to be written as ==== Examples ==== getParameters() as $p) { echo $p->name . ": " . $p->getDocComment() . "\n"; } ?> This would output query: /** Terms to search for in database */ num: /** Maximum number of entries returned */ ===== Backward Incompatible Changes ===== The change is Userland API and Internal API compatible. As it adds a field to the arg_info structure it breaks ABI compatibility and extensions have to be recompiled. ===== Proposed PHP Version(s) ===== Next PHP 8.x (8.6) due to the ABI change. ===== RFC Impact ===== ==== To the Ecosystem ==== Allowing more local, less redundant and less error-prone documentation of function parameters should enable better documentation. ==== To Existing Extensions ==== Existing extentions have to be recompiled due to the ABI change. ==== To SAPIs ==== None. ===== Open Issues ===== Write tests for ReflectionParameter::getDocComment() ===== Future Scope ===== None. ===== Voting Choices ===== Primary Vote requiring a 2/3 majority to accept the RFC: * Yes * No * Abstain ===== Patches and Tests ===== There is currently no PR but only an experimental branch to be converted into a PR: https://github.com/php/php-src/compare/master...chschneider:php-src:param-doccomment-part1 ===== Implementation ===== ===== References ===== None. ===== Rejected Features ===== None. ===== Changelog ===== None.