ホームページ > バックエンド開発 > PHPチュートリアル > 常識を覆す - 無限ループ構造のコードには、ループの外でロジックを実行する機会もあります

常識を覆す - 無限ループ構造のコードには、ループの外でロジックを実行する機会もあります

WBOY
リリース: 2016-06-13 12:47:50
オリジナル
957 人が閲覧しました

常識を覆す -- 無限ループ構造を持つコードには、ループの外でロジックを実行する機会もあります

class ZookeeperDemo extends Zookeeper {

パブリック関数ウォッチャー( $i, $type, $key ) {
echo "Insider Watchern";

// Watcher が消費されるため、新しい Watcher を設定する必要があります
$this->get( '/test', array($this, 'watcher' ) );
}

}

$zoo = 新しい ZookeeperDemo('127.0.0.1:2181');
$zoo->get( '/test', array($zoo, 'watcher' ) );

while( true ) {
エコー '.';
スリープ(2);
}


次に、スクリプトを実行します。

$ php Zookeeperdemo1.php
ここでは 2 秒ごとにドットが生成されるはずです。次に、ZooKeeper クライアントに切り替えて、「/test」値を更新します。

[zk: 127.0.0.1:2181(CONNECTED) 20] set /test foo
これにより、PHP スクリプト内で「Insider Watcher」メッセージがサイレントにトリガーされます。


どうしてこんなことが起こるのでしょうか? while 構造に入った後も、ウォッチャー メソッドが実行できるのはなぜですか?読者の皆様、コメントください。


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