2016-04-09 9 views
2

私は個人的なデータベース接続モデルを構築しています。私が必要としたことは、ユーザーが関数を使ってループを開始し、別の関数でループを終了できるようにすることです。コードがクラスにPHPループを1つの関数で開始し、別の関数で終了しますか?

PSMQuery::loopQueryStart("DATA"); 
    // Stuff that can be executed in the loop 
PSMQuery::loopQueryStop(); 

機能を実行するための

コード:

public function loopQueryStart($query) { 
    while (CONDITION): 
} 

public function loopQueryEnd() { 
    endwhile; 
} 

そして、私はこの方法が動作するかどう思っていたし、別の方法があるならば、これはコードです私のモデルを使っている人のコードの見た目を単純化するだけです。

+1

を見つけるのに役立つかもしれませんか? – Federkun

+0

@Federicoループは関数で開始され、途中では入力を使用してループを閉じる別の関数を使用できます。 - AuthのCodeIgniterメソッドのようなもの – Jek

+1

これは私には意味がありません。 'PSMQuery :: loop(" Data "、function($ var){/ * sth * /})'のように関数/参照を渡すことはできませんか? – kero

答えて

2

私のコメントで述べたように、私はこれは良い考えだとは思わない。はい、WordPressのループが心に浮かびますが、それは私にとっては汚いと感じています。

私が示唆しているのはCallbacks/Callablesです。このようにして、ループをさまざまな関数で開始および終了する必要はなく、関数を渡してループ内を呼び出すことができます。私はthis working exampleを用意しました。あなたは、より複雑な方法で操作したい場合は、あなたのコードは、この

PSMQuery::loopQuery("Data", function($data) { 
    // return something 
}); 

//*** 

public static function loopQuery($data, callable $callback) { 
    while (loop) { 
     // do something with $callback 
    } 
} 

ようになり、referencesはあなたが地獄はあなたが達成しようとしているものソリューション

+0

しばらく混乱した後、私はついにそれを得た、答えのおかげで:) – Jek

関連する問題