簡體   English   中英

PHP 從包含的腳本中退出(),退出父腳本?

[英]PHP exit() from within included script, exit parent script?

在 PHP 中,如果我使用 include() 或 require() 函數開始在另一個腳本中運行代碼,有沒有辦法從子腳本中終止父腳本?

所以說我在parent.php中有這個:
require('child.php');

這在 child.php 中:
exit();

這會終止 child.php 還是 parent.php 嗎?
有沒有辦法從 child.php 中終止 parent.php,而不向 parent.php 添加任何進一步的代碼?

它用於 PHP 中精心設計的自定義 404 錯誤頁面,它檢測 Apache 是否使用 ErrorDocument 調用了它,或者用戶是否從我們的自定義 CMS 請求了一個不存在的頁面。 如果是后者,那么我想只需要我的 404.php (子)和 output ,而不是繼續執行父。

任何人都知道是否可以從包含/必需的腳本中終止父 PHP 腳本?

exit(); 這會終止 child.php 還是 parent.php 嗎?

它將終止整個腳本。

如果您不想這樣做,而是返回包含腳本,則可以從包含中return

您正在尋找return 命令。 這將僅終止 child.php 的執行,然后處理 parent.php。

如果您需要存在包含文件但從主腳本繼續,您可以使用return

返回

(PHP 4,PHP 5,PHP 7)

return將程序控制權返回給調用模塊。在被調用模塊調用之后的表達式處繼續執行。

如果從 function 中調用,return 語句將立即結束當前 function 的執行,並將其參數作為 function 調用的值返回。 return 還結束 eval() 語句或腳本文件的執行。

如果從全局 scope 調用,則結束當前腳本文件的執行。 如果當前腳本文件被包含或需要,則控制權被傳遞回調用文件。 此外,如果包含當前腳本文件,則返回的值將作為包含調用的值返回。 如果從主腳本文件中調用 return,則腳本執行結束。 如果當前腳本文件由 php.ini 中的 auto_prepend_file 或 auto_append_file 配置選項命名,則該腳本文件的執行結束

任何人都知道是否可以從包含/必需的腳本中終止父 PHP 腳本?

您可以使用

die();

在任何時候結束任何腳本的進一步執行。 使用 Die 也結束了父腳本。

die("End");

將 output “結束”。

實際上是一個exit; child.php將終止當前 php 進程,這意味着parent.php將很好地終止。

您還可以通過引發異常來終止腳本並在其中一個父腳本中捕獲它。

通過這種方式,您可以精確控制要終止的腳本以及在“include / require”文件堆棧中繼續的位置。

dieexit都將在不影響的情況下終止。 這是一個應用程序級別的命令,不能被捕獲或撤消。

使用exit()將停止腳本執行並終止孩子和所有父母。

您可以嘗試拋出異常:

throw new Exception('An Error Ocurred');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM