uzulla / guardphp

(Perl) PHP 守护者

v1.0 2014-05-17 05:25 UTC

This package is auto-updated.

Last update: 2024-09-07 14:29:10 UTC


README

类似于 Perl 的 Scope::Guard

概要

<?php
require "vendor/autoload.php";

use \Uzulla\Guard as Guard;

chdir('/usr'); # カレントディレクトリを/tmpに変更
echo getcwd().PHP_EOL; # カレントディレクトリを表示

call_user_func(function(){
    $g = new Guard(function(){ # Guardにコードを登録
        chdir('/usr');
    });
    chdir('/'); # カレントディレクトリを/に変更
    echo getcwd().PHP_EOL; # カレントディレクトリを表示
    # ここでscopeがおわるので、上で登録したコードが実行される
});

echo getcwd().PHP_EOL; # カレントディレクトリを表示

描述

Guard 允许在特定的作用域离开时执行函数。

它利用离开作用域时变量被释放的特性,因此在 PHP 的函数作用域中使用匿名函数等会更好。

通过更改变量名,可以创建多个,但不能保证它们的执行顺序。

许可证

MIT