ホームページ > バックエンド開発 > PHPチュートリアル > PHP はイベントの監視とトリガーのサンプル プログラムを実装します_PHP チュートリアル

PHP はイベントの監視とトリガーのサンプル プログラムを実装します_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:47:03
オリジナル
908 人が閲覧しました

この記事では、PHP でのイベント監視とトリガーのサンプル プログラム コードの実装について学生に紹介します。これらの方法が、困っている友人たちに役立つことを願っています。

仕方ないので、PHPでイベント監視を実装する方法を考え、jQueryのイベントバインディングの考え方を参考にして簡単に実装してみました。
主な機能:

1. イベントのバインドは、複数のアクションの 1 つのイベントへのバインドと 1 回限りのイベントのバインドをサポートします
2.イベントをトリガーする
3. ログアウトイベント

コードは次のとおりです コードをコピー

クラスイベント
{
保護された静的 $listens = array();
パブリック静的関数 listen($event, $callback, $once=false){
if(!is_callable($callback)) は false を返します
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ true を返します
}

パブリック静的関数 one($event, $callback){
return self::listen($event, $callback, true); }

パブリック静的関数remove($event, $index=null){
if(is_null($index))
unset(self::$listens[$event]); その他
unset(self::$listens[$event][$index]); }

パブリック静的関数trigger(){
If(!func_num_args()) が返る;                                                                                                                                 $event = array_shift($args); if(!isset(self::$listens[$event])) false を返します
foreach((配列) self::$listens[$event] as $index=>$listen){
​​​​​​​​ $listen['once'] && self::remove($event, $index); call_user_func_array($callback, $args); }
}
}



呼び出しの例をいくつか示します:

コードは次のとおりです コードをコピー

// ウォークイベントのリスニングを追加します
イベント::リッスン('ウォーク', function(){
エコー「私は歩いています...n」; }); // 散歩に 1 回限りのリスニング イベントを追加します
イベント::リッスン('ウォーク', function(){
エコー「聞いています...n」; }、本当です); // ウォークイベントをトリガーする
イベント::トリガー('ウォーク'); /*
歩いてます…
聞いています…
*/
イベント::トリガー('ウォーク'); /*
歩いてます…
*/

イベント::one('言う', function($name=''){
エコー「私は {$name}n です」; });
Event::trigger('say', 'deeka'); // 出力 私は deeka です
Event::trigger('say', 'deeka') // 実行されません

クラスフー
{
パブリック関数 bar(){
echo "Foo::bar() が呼び出されます"; }

パブリック関数 test(){
echo "Foo::foo() が呼び出されます。 agrs:".json_encode(func_get_args())."n"; }
}

$foo = 新しい Foo

イベント::listen('bar', array($foo, 'bar')); イベント::トリガー('バー');
イベント::listen('テスト', array($foo, 'テスト')); イベント::トリガー('テスト', 1, 2, 3);
クラスバー
{
パブリック静的関数 foo(){
echo "Bar::foo() が呼び出されます"; }
}

イベント::listen('bar1', array('Bar', 'foo')); イベント::トリガー('bar1');
イベント::listen('bar2', 'Bar::foo'); イベント::トリガー('bar2');
関数 bar(){
echo "bar() が呼び出されます"; }

イベント::listen('bar3', 'bar'); イベント::トリガー('bar3');










http://www.bkjia.com/PHPjc/632901.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/632901.html

技術記事

この記事では、PHP でイベントの監視とトリガーを実装するためのプログラム コードを紹介します。これらの方法が必要な方の役に立てば幸いです。 何もすることがないので考えてみました…

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート