可以从PHP类中的include()'d文件中访问$this


Possible to access $this from include()'d file in PHP class?

我正在做一个WordPress小部件和示例都有巨大的HTML/PHP块混合在一起,它是不可能阅读的,所以在试图清理东西的兴趣,我想移动所有的HTML渲染到一个单独的PHP文件,将include() 'd。

这个技巧是,我包含的文件似乎没有访问$this,我不确定如何解决这个问题。

widget.php

class Preorder extends WP_Widget {
    ...
    function form() {
        include('form.php');
    }
}

form.php

<p>
   <?php echo $this->get_field_id('title'); ?>
</p>

这导致了[31-Aug-2011 19:59:19] PHP Fatal error: Call to a member function get_field_id() on a non-object in ...,所以显然$this不是免费出现的。我试过把$this混叠到另一个变量&即使只是为了好玩而没有成功地使用global关键字。

希望我错过了一些简单的东西

忘记在目录上迭代了&include -删除每个.php文件,将form.php重命名为form.php。TMPL和似乎有效。

·杜尔。