提问人:WordPressGeek 提问时间:11/27/2021 最后编辑:WordPressGeek 更新时间:11/28/2021 访问量:148
如何包含包含$this并给出“PHP 致命错误:未捕获错误:不在对象上下文中使用$this”的 PHP 文件
How to include a PHP file which contains $this and gives "PHP Fatal error: Uncaught Error: Using $this when not in object context"
问:
我想在我的 php 文件中包含一个带有路径的文件,但我遇到的问题是/home/public_html/dir5/file5.php
/home/public_html/dir1/file1.php
PHP 致命错误:未捕获错误:在 /home/public_html/dir5/file5.php:2:2 的对象上下文中不使用$this
file5.php 的内容如下:
<?php
if ( !$this->is_users_rating_disabled() ):
$score = isset( $this->users_data['overall'] ) ? $this->users_data['overall'] : 0;
$count = isset( $this->users_data['count'] ) ? $this->users_data['count'] : 0;
$theme = $this->template_field('template_theme', true);
$maximum_score = $this->template_field('template_maximum_score', true);
$revOver = $score;
?>
我读过其他帖子,可能是因为它在错误日志中说,我怎样才能转换我的代码来工作?$this
我看到了一些你可以转换的例子:
$this->$db->etc
自:
$db = get_instance();
$db->etc
类似的东西,但就我而言,我有,例如,我该如何改变它?谢谢!$this->users_data['overall']
$this->template_field('template_maximum_score', true);
更新:is_users_rating_disabled() 定义如下:
public function is_users_rating_disabled()
{
$auth = $this->preferences_field('preferences_authorization', true);
if ($auth == 'disabled' || $this->review_field('review_disable_user_rating', true) == 'yes') {
return true;
}
return false;
}
最后我只想使用 file5 中的$revOver变量.php在 file1 中.php ,我尝试使用 GLOBALS['revover'] = $revOver;在 file5.php 中设置并在 file1.php 中使用它但它不起作用,除了在 file1.php 中包含 file5.php 之外,还有什么办法可以使用该变量?
答: 暂无答案
评论
is_users_rating_disabled()
public
意味着该函数实际上是一个类方法。这是一个语义上的差异,但重要的是要注意。类是一种隔离和保护代码的方法。Inside a 类用于访问受保护的部分,但只有类作者才能使用它。除非能看到更大的图景,否则重写代码以不使用是没有意义的。$this
$this