搜尋
首頁後端開發php教程PHP register_shutdown_function函數的解析
PHP register_shutdown_function函數的解析Apr 09, 2018 pm 04:13 PM
functionshutdown

本篇文章是對PHP register_shutdown_function函數進行了分析介紹,需要的朋友參考下

腳本時常死掉,而且並不總是那麼好看. 我們可不想給用戶顯示一個致命錯誤,又或者一個空白頁(在display_errors設為off的情況下) . PHP中有一個叫做  register_shutdown_function 的函數,可以讓我們設定一個當執行關閉時可以被調用的另一個函數.#也就是說當我們的腳本執行完成或意外死掉導致PHP執行即將關閉時,我們的這個函數將會被呼叫.所以,我們可以使用在腳本開始處設定一個變數為false,然後在腳本末尾將之設為true的方法,讓PHP關閉回調函數檢查腳本完成與否. 如果我們的變數仍舊是false,我們就知道腳本的最後一行沒有執行,因此它肯定在程式執行到某處死掉了.我準備了一個非常基本的例子,可以演示在一個致命錯誤需要顯示時,你應該怎麼給用戶一些合適的反饋.你可以通過關閉致命錯誤的顯示(譯註:可以設置display_errors和error_reporting),讓範例看起來好看些.

複製程式碼 程式碼如下:


#$clean = false;
function shutdown_func(){
global $clean;
if (!$clean){
die("not a clean shutdown");
}
return false;
}
register_shutdown_function("shutdown_func");
$a = 1;
$a = new FooClass(); // 會因為致命錯誤而失敗
$clean = true;
?>


如你所看到,如果關閉回呼函數運行時,clean變數沒有被設為true,shutdown_func函數將會印出一些東西。這個東西可以包裝成一個類別(不使用全域變數).
PHP提供register_shutdown_function()這個函數,能夠在腳本終止前回呼註冊的函數,也就是當PHP 程式執行完成後執行的函數。
register_shutdown_function 執行機制是:PHP把要呼叫的函式調入記憶體。當頁面所有PHP語句都執行完成時,再呼叫此 函數。請注意,在這個時候從記憶體中調用,不是從PHP頁面中調用,所以上面的例子不能使用相對路徑,因為PHP已經當原來的頁面不存在了。就沒有什麼相對路 徑可言。
注意:register_shutdown_function 是指在執行完所有PHP語句後再呼叫函數,不要理解成客戶端關閉串流瀏覽器頁面時呼叫函數。
可以這樣理解呼叫條件:
1、當頁面被使用者強制停止時
2、當程式碼運行逾時時
3、當PHP程式碼執行完成時,代碼執行存在異常和錯誤、警告
相關推薦:

PHP函數靜態變量的使用方法                   

#

以上是PHP register_shutdown_function函數的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
linux关机命令shutdown可以实现立刻关机吗linux关机命令shutdown可以实现立刻关机吗Jan 28, 2023 pm 05:26 PM

linux关机命令shutdown可以实现立刻关机,只需要root用户执行“shutdown -h now”命令即可。shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown命令需要系统管理者root用户来使用。

function是什么意思function是什么意思Aug 04, 2023 am 10:33 AM

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果,其目的是封装一段可重复使用的代码,提高代码的可重用性和可维护性。

在 Windows 10 / 11 中设置自动关机的 3 种方法在 Windows 10 / 11 中设置自动关机的 3 种方法May 01, 2023 pm 10:40 PM

在繁忙的世界中,我们希望自动化一些您希望定期或及时触发的事情。自动化有助于控制任务并减少您执行任务的努力。其中一项任务可能是关闭您的计算机。您可能希望您的计算机定期关闭,或者您希望它在一天中的特定时间关闭,或者在一周中的特定日子关闭,或者您想要关闭一次。让我们看看如何设置计时器,以便系统自动关闭。方法一:使用运行对话框步骤1:按Win+R,键入shutdown-s-t600并单击OK。注意:在上面的命令中,600表示以秒为单位的时间。您可以根据需要更改它。它应该始终以秒为单位,而不是几分钟或几小

如何在Linux中设置定时关机命令如何在Linux中设置定时关机命令Feb 18, 2024 pm 11:55 PM

Linux定时关机命令是什么在使用Linux系统时,我们经常需要定时关机,比如在下载大量文件后自动关机,或者在服务器不再使用时自动关闭等。在Linux系统中,定时关机可以使用“shutdown”命令来实现。“shutdown”命令允许用户将系统关闭或重新启动,并设置一个延迟时间。通过在命令中添加参数,可以实现定时关机的功能。命令的基本格式如下:shutdow

MySQL shutdown unexpectedly - 如何解决MySQL报错:MySQL意外关闭MySQL shutdown unexpectedly - 如何解决MySQL报错:MySQL意外关闭Oct 05, 2023 pm 02:42 PM

MySQL是一款常用的关系型数据库管理系统,广泛应用于各种网站和应用中。然而,使用MySQL时可能会遇到各种问题,其中之一就是MySQL意外关闭。在这篇文章中,我们将讨论如何解决MySQL报错的问题,并提供一些具体的代码示例。当MySQL意外关闭时,我们首先应该查看MySQL的错误日志,以了解关闭的原因。通常,MySQL的错误日志位于MySQL安装目录的da

MySQL.proc表的作用和功能详解MySQL.proc表的作用和功能详解Mar 16, 2024 am 09:03 AM

MySQL.proc表的作用和功能详解MySQL是一种流行的关系型数据库管理系统,开发者在使用MySQL时常常会涉及到存储过程(StoredProcedure)的创建和管理。而MySQL.proc表则是一个非常重要的系统表,它存储了数据库中所有的存储过程的相关信息,包括存储过程的名称、定义、参数等。在本文中,我们将详细解释MySQL.proc表的作用和功能

"enumerate()"函数在Python中的用途是什么?"enumerate()"函数在Python中的用途是什么?Sep 01, 2023 am 11:29 AM

在本文中,我们将了解enumerate()函数以及Python中“enumerate()”函数的用途。什么是enumerate()函数?Python的enumerate()函数接受数据集合作为参数并返回一个枚举对象。枚举对象以键值对的形式返回。key是每个item对应的索引,value是items。语法enumerate(iterable,start)参数iterable-传入的数据集合可以作为枚举对象返回,称为iterablestart-顾名思义,枚举对象的起始索引由start定义。如果我们忽

shutdown马上关机命令是什么shutdown马上关机命令是什么Feb 27, 2023 am 11:23 AM

shutdown马上关机命令是“shutdown -h now”;其中shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown也可以用来重开机。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。