在提供的類中,我需要從靜態和內部對象中調用前函數。但我不能這樣做。我的類代碼檢查對象上下文中的天氣還是不在PHP中
class mc {
public $trace_back = 1;
public static function pre() {
if(isset($this) && isset($this->trace_back)){
$trace_back = $this->trace_back;
}
else{
$trace_back = 1;
}
echo $trace_back;
}
}
現在,當我打電話靜態
mc::pre(); // echo 1;
呼應,預期這是罰款。
但是當對象上下文,像
function mcpre(){
$mc = new mc();
$mc->trace_back = 3;
$mc->pre(); // echo 1
}
它再次呼應1,3時預期。
從更廣泛的角度來看,我的問題是我們如何以靜態和對象兩種方式調用函數。
這也行不通。
class Foo {
function bar() {
$static = !(isset($this) && get_class($this) == __CLASS__);
}
}
簡答:你不需要。爲了你自己。 – Alfwed
爲什麼echo語句在外部函數中總是會打印1 –
哦,那只是輸入錯誤,我編輯了這個問題。 – anwerj