我有一個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