我有一個函數在PHP中啓動一個異常,代碼之後,該異常永遠不會執行,儘管拋出或不拋出的異常。代碼後拋出異常在PHP中沒有執行
if ($a == 1) throw new Exception("Message");
echo "Dose not execute for $a == 0";
我知道,當後一個異常發生的代碼將無法達成,但在我的例子中,當$a == 0
不會拋出異常,但即使不執行echo
。
非常感謝,我希望有人能夠通過5.3的方式瞭解我的PHP正在發生什麼。
我有一個函數在PHP中啓動一個異常,代碼之後,該異常永遠不會執行,儘管拋出或不拋出的異常。代碼後拋出異常在PHP中沒有執行
if ($a == 1) throw new Exception("Message");
echo "Dose not execute for $a == 0";
我知道,當後一個異常發生的代碼將無法達成,但在我的例子中,當$a == 0
不會拋出異常,但即使不執行echo
。
非常感謝,我希望有人能夠通過5.3的方式瞭解我的PHP正在發生什麼。
按定義拋出異常結束當前運行(函數,方法等)。如果你不想要這種行爲,不要拋出異常。
此外,您不需要在拋出異常後回顯錯誤,只需將錯誤包含在異常中即可。
如果你assing「0」到「$」喜歡這一點,當然$a == 0,
這是行不通的,因爲你不分配一個值,但檢查平等(不嚴格);
此代碼:
$a = 0;
if ($a == 1) throw new Exception("Message");
echo "Dose not execute for $a == 0";
工作。 I.E.,echo
工作(「劑量不執行0 == 0」),因爲$a != 1.
並沒有引發異常。 你應該使用單引號來產生一條消息(錯誤的,因爲它是),如「劑量不執行$ a == 0」,因爲使用雙引號,該變量在字符串中取代。
驗證碼:
$a = 1;
if ($a == 1) throw new Exception("Message");
echo "Dose not execute for $a == 0";
拋出一個異常,它停止腳本的運行和回聲沒有得到執行。所以,它的工作。
像您A碼,
$a == 0;
if ($a == 1) throw new Exception("Message");
echo "Dose not execute for $a == 0";
只需返回未定義的變量誤差,由於$一個沒有定義。很可能,您沒有啓用/顯示錯誤,因此無法看到任何內容。
我會建議的第一件事是總是使用大括號。 –