我正在嘗試OOP,但我很新,所以, 我已經創建了一個模塊joomla 2.5.x和它的主要php文件我require_once
一個文件與類是這樣的:php不能重新聲明類/未定義的變量Joomla模塊
require_once(JPATH_SITE.'/modules/'.$module_dir.'/libs/classes.php');
classes.php包含此:
class experiment
{
function clean($input)
{
return filter_var($input, FILTER_SANITIZE_STRING);
}
}
$my = new experiment;
然後在模塊php文件我使用它像:
$name = $my->clean($params->get('name'));
直到這一點,它都表現正常。但是,只有當模塊在同一頁面上只出現一次。如果我複製模塊並在同一頁上使用它兩次,我會收到錯誤Undefined variable my
。如果我將require_once
更改爲require
,則會收到錯誤Cannot redeclare class experiment
。奇怪的。
我也試過if (!class_exists(..
或if(!isset($my)) { .. }
但我知道這是行不通的。
我歡迎任何形式的幫助,歡呼聲。
哇!哈哈我沒想到在classes.php裏面加上'$ my = new experiment;'並把它放在模塊文件中。我只是因爲你的幫助而做到了這一點,它讓我大笑,它效果非常好!謝謝你,我真的很感謝:)這很簡單。 – durduvakis
好吧,我有兩個原因進行了實驗。 1,所以我更確定函數名稱將不會在所有Joomla中找到,2,當然要慢慢地學習OOP ... – durduvakis
謝謝你爲此,我將嘗試瞭解單身模式爲好! – durduvakis