phpDocumentor和@global关键字

时间:2011-07-07 22:33:55

标签: php phpdoc

在下列情况下,我对@global的使用是否正确?

// File: my_special_class.php
<?php
...
class MySpecialClass {

    function display_template() {
        // Following variable will be available from context of 'template.php':
        $instance = array( 'title' => 'Test Page' );

        include('template.php');
    }

}

// File: template.php
<?php
/**
 * Template for ...
 *
 * @copyright Me
 * @version 1
 *
 * @global array $instance Template instance parameters.
 */
?>
<h1><?php echo $instance['title']; ?></h1>

有没有标准的记录方式?

这主要是提醒那些阅读代码的人,但如果这些信息也存在于phpDocumentor生成的文档中,那将会非常有用。

1 个答案:

答案 0 :(得分:1)

实际上,你的$ instance变量不在全局范围内,基于这段代码......它只是MySpecialClass :: display_template()函数的本地变量。

如果你想从template.php文档页面强调,对于$ instance变量,读者有一些重要的东西,你可以在template.php的文件级docblock中使用@see标签(您当前拥有@global标记的位置)将读者指向设置$ instance的MySpecialClass函数:

<?php
/**
 * Template for ...
 *
 * @copyright Me
 * @version 1
 *
 * @see MySpecialClass::display_template() to see how $instance is populated
 */
?>
<h1><?php echo $instance['title']; ?></h1>