suin.io

register_shutdown_functionいりこ状にしてもOK

suin2011年3月7日

register_shutdown_function()関数は、PHPのプロセス終了直前にコールバックする関数を登録するものです。用途によっては便利な機能なのです。この関数についてふと疑問が。「register_shutdown_function()はいりこ状にできるのか」というものです。気になったのでやってみました。

<?php
error_reporting(-1);
ini_set('display_errors', 1);

register_shutdown_function('shutdown');

function shutdown()
{
	var_dump(__FUNCTION__);
	register_shutdown_function('shutdown_recursive');
}

function shutdown_recursive()
{
	var_dump(__FUNCTION__);
	register_shutdown_function('shutdown_recursive_recursive');
}

function shutdown_recursive_recursive()
{
	var_dump(__FUNCTION__);
}

実行結果

string(8) "shutdown"
string(18) "shutdown_recursive"
string(28) "shutdown_recursive_recursive"

エラーも出ずに、あっさりと出来てしまいました。まずこんな実装はないと思いますが、「register_shutdown_function()はいりこ状にできる」というのは覚えておくといいかもしれません。

RELATED POSTS