我有一个php类,它使用“include”从文件加载一些html和php。在该文件中,我想访问包含该文件的类对象,但我不断收到“致命错误:调用一个非对象的成员函数makeSizesSelect()...”PHP类包含一个文件,但该文件无法访问类
我试过两个include并要求,我试过声明全局变量,我试过了我能想到的一切,以及迄今为止发现的所有内容。没有任何东西似乎允许我包含的文件让php代码访问包含它的对象。
任何想法?
这里的一些片断......
类文件:
class cdf {
public $version = 001;
public function cdf_shortcode($atts,$content)
{
$this->slog(2,"shortcode() case: show");
require('templates/container.php');
}
}
和所需文件container.php包含以下(除其他东西):
<?php
echo "version = ".$this->version;
?>
我然后尝试使用该对象:
$cdf = new cdf();
$cdf->cdf_shortcode(null, null);
行$ this-> slog(2,“shortcode()case:show”)起作用。它运行那个函数(我没有包含在这个代码片段中)就好了。但是然后我需要(或包含)的文件不能使用$ this访问该对象。我很茫然。 :-(
所有我想要做的是所包含的文件中访问,在包含在文件中的类变量和方法......
对不起,一些额外的信息。我不知道如果这有什么差别。上面的代码是一个WordPress插件的一部分。
包括文件是不够的,你需要实例化类 – roberto06
,因为你没有创建任何对象来访问你的类,包括像创建类的对象像$ obj = new cdf();然后访问成员函数像$ obj-> cdf_shortcode('','') –
我的这个类显然是实例化的,而且这个对象是存在的,正如我所说的,shortcode函数的第一行工作,如果我没有实例化这个对象,情况就不是这样了 – CraigD