[英]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”文件堆棧中繼續的位置。
die
和exit
都將在不影響的情況下終止。 這是一個應用程序級別的命令,不能被捕獲或撤消。
使用exit()
將停止腳本執行並終止孩子和所有父母。
您可以嘗試拋出異常:
throw new Exception('An Error Ocurred');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.