3
我有一段代碼的結構如下。語言異常。好奇跳
if (isset($x)){
error_log("A");
$a = f();
error_log("B");
}
error_log("C");
錯誤日誌有條目
A
C
我得到的錯誤日誌中沒有其他條目。
我已經將奇怪的行爲縮小到f()中的API調用phpCAS::isAuthenticated()
,phpCAS v1.3.2。
這段代碼怎麼可能跳過error_log("B")
的呼叫?什麼語言結構允許這個?
沒有允許這種操作的語言結構。我猜你誤解了一些調試輸出。 – hek2mgl
有沒有其他的代碼,例如捕捉異常,帶斷點的開關/循環等等。C日誌可能來自其他地方,例如執行實際上停止在B之前,而另一個會話或部分代碼日誌C? –
你是否排除了'f()'在*'isset($ x)'之前不會導致控制跳回*的可能性,但是在那個過程中'$ x'未被設置?例如,這可能發生在遞歸中。 – kojiro