可以从 PHP 类中的 include()'d 文件访问 $this 吗?
我正在开发一个 WordPress 小部件,这些示例都有巨大的 HTML/PHP 块混合在一起,无法阅读,所以为了尝试清理内容,我想移动所有的 HTML 渲染到一个单独的 PHP 文件,该文件将被 include()
'd.
I'm working on a WordPress Widget and the examples all have huge HTML/PHP chunks intermixed and it is impossible to read, so in the interest of trying to clean stuff up I'd like to move all of the HTML rendering to a separate PHP file that will be include()
'd.
诀窍是,我包含的文件似乎无法访问 $this
,我不确定如何解决.
The trick to this is, the file I include doesn't appear to have access to $this
and I'm unsure how to fix that.
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
关键字没有成功.
Which results in [31-Aug-2011 19:59:19] PHP Fatal error: Call to a member function get_field_id() on a non-object in ...
so clearly $this
doesn't come along for free. I've tried aliasing $this
to another variable & even just for fun using the global
keyword without success.
希望我错过了一些简单的事情.
Hopefully I missed something easy.
推荐答案
忘了我是在遍历目录 &include
-ing 每个 .php 文件,将 form.php 重命名为 form.tmpl 并且似乎可以工作.
Forgot that I was iterating over the directory & include
-ing every .php file, renamed form.php to form.tmpl and appears to work.
杜尔.
相关文章