如何糾正缺陷在這個函數如何糾正缺陷在這個函數
class MyClass {
private $_callingscript;
public function __construct(){
$this->_callingscript= basename($_SERVER['SCRIPT_NAME']);
}
public static function Setvalue($k,$v){
if (!empty($k)) {
$_SESSION[$this->_callingscript.'_'.$k]= $v;//This doesnot work
$_SESSION[$_SERVER['SCRIPT_NAME'].'_'.$k]=$v //This works
}
}
}
MyClass::setValue('Somename',"Somevalue");
當我把這個它給我的錯誤「時,沒有在對象範圍內使用$this
」。 如何更正callingscript變量。這是由於該變量的私人聲明造成的
它沒有鍛鍊給了我錯誤「未定義的類常量」 – Someone 2010-10-28 18:22:42
我不認爲這也可以。你直接調用靜態setValue,所以沒有構造被調用,所以$ _callingscript變量沒有被設置。如果它不崩潰,最好的情況下會有一個「空」值。 @Someone我推薦webbidaves解決方案,重構類,這就是要走的路。 – enricog 2010-10-28 18:28:31
@TheCandyMan666:你是絕對正確的先生。 – David 2010-10-28 18:38:19