Php 记录隐式输入参数,例如$\u会话
如果函数依赖于Php 记录隐式输入参数,例如$\u会话,php,phpdoc,Php,Phpdoc,如果函数依赖于$\u SESSION['some\u var'],则标题将注释掉以明确说明这一点。你是怎么做到的?就像文本一样,还是什么 甚至是@param?哇,我从没想过。我甚至都不记录这样的事情。我会说,只需在方法中详细说明 /** * Takes the some_var session variable and uses it to solve world hunger * @return food */ 对我来说最有意义 有@global,但这似乎表明创建了一个全局变量。我认为
$\u SESSION['some\u var']
,则标题将注释掉以明确说明这一点。你是怎么做到的?就像文本一样,还是什么
甚至是
@param
?哇,我从没想过。我甚至都不记录这样的事情。我会说,只需在方法中详细说明
/**
* Takes the some_var session variable and uses it to solve world hunger
* @return food
*/
对我来说最有意义
有@global,但这似乎表明创建了一个全局变量。我认为@param应该只引用传递给该方法的方法参数。据我所知,没有@note。你可以用来记录超全局变量。@global有两种用法:表示全局变量的定义,以及强调全局变量在方法中的用法。第二种用法适合您的用例 但是,假设您在该方法中直接引用$\u SESSION['some_var'],并且从不通过“global”关键字表示它,则在解析该方法时,phpDocumentor的@global标记可能找不到它。因此,@使用可能是突出该方法对超全局的依赖性的最佳替代方法
[1] --如果您的代码依赖于全局或外部的东西才能工作(例如,它需要安装sqlite),则可以使用@use as 但是… 一般来说,我认为让函数填充或使用全局变量(或使用超全局变量)是一种不好的做法,因为它破坏了函数的封装,并在函数内部和外部的代码之间创建了强烈的依赖关系 如果函数外部的任何代码都应该创建或访问这些全局变量,那么这些值应该作为参数传递给函数 例如,代替
function doMagic(){
if ($_SESSION['use_black_magic'] == true){ // var coming from the outside
$_SESSION['magic_results'] = 'dead chicken';
}else{
$_SESSION['magic_results'] = 'unicorn';
}
}
$_SESSION['use_black_magic'] = false;
doMagic();
echo $_SESSION['magic_results']; // (unicorn) variable set within doMagic()
应该是
function doMagic( $use_black_magic = true ){
if ($use_black_magic == true){
return 'dead chicken';
}else{
return 'unicorn';
}
}
$magic_results = doMagic( false );
echo $magic_results; // unicorn
这样,doMagic()就不需要知道将结果存储在何处,也不需要知道在何处查找参数值。外部代码不需要知道函数doMagic()正在使用$\u会话变量执行某些操作
只要代码稍微增长一点,维护、共享、调试和扩展此类代码就变成了一场噩梦