我包括文件inner.php
outer.php
,我有一個條件inner.php
我想停止執行inner.php
但不是整個腳本,即我想跳轉到在包含inner.php
之後的第一行outer.php
中,我不想將所有inner.php
中的代碼包含在if語句中。跳過PHP(其中包含的)文件的其餘部分
有沒有辦法做到這一點,否則呢?
我包括文件inner.php
outer.php
,我有一個條件inner.php
我想停止執行inner.php
但不是整個腳本,即我想跳轉到在包含inner.php
之後的第一行outer.php
中,我不想將所有inner.php
中的代碼包含在if語句中。跳過PHP(其中包含的)文件的其餘部分
有沒有辦法做到這一點,否則呢?
只要在inner.php
文件的頂層執行return;
或return($value);
即可。
如果從全局範圍調用,然後 當前腳本文件 的執行結束。如果當前腳本文件 是
include()ed
或require()ed
,則將 控件傳回給調用的 文件。此外,如果當前的 腳本文件是include()ed
,那麼給予return()
的 值將爲 ,作爲include()
調用的值返回。
您可以在您的包含文件中調用return
,但是如果您必須這樣做,那麼它表明您的架構有問題。例如,考慮這個包含文件:
<?php
// include.php
echo "This is my include";
return;
echo "This is after the include";
..included下頁:
<?php
// index.php
include('include.php');
你會得到的輸出是:This is my include
。
我推薦使用require來停止你的頁面執行,如果找不到include文件。我也同意,如果你想要這樣做,你的架構可能有些問題。分割您的包含文件或在包含文件中進行條件測試。 – 3nixios 2011-05-26 09:24:02
如何有兩個文件的內部。第一部分和第二部分將條件放在第二部分?
扔在那裏要停止
// in inner.php:
// ...some code...
throw new Exception('Error description');
// ...some code which will not always execute...
,並抓住它在文件中要恢復
// in outer.php
try {
include 'inner.php';
} catch (Exception $e) {
//TODO: add error handling here
}
UPDATE
不同點異常使用return;
作爲其他答案在這裏建議,使用例外將打破在哪裏,即使你在某個函數內inner.php
摘取說明的徹底性,具體回答*我的問題 – MeLight 2011-05-26 10:39:01
太棒了!謝謝:-)回報真的幫了我 – Can 2015-05-21 05:07:35
+1,我從來沒有意識到'require'或'include'可以有返回值。使用退貨,我可以檢查自動包含提供有效的類更好一點:D – 2015-08-25 09:38:29