3

PHP でカスタム ブレーク コマンド/関数を作成できるかどうか疑問に思っています。

例えば、

<?php
$custombreak = create_function('$a', 'if ($a == 3) break 1;');

$i = 0;
do {

    echo $i . '<br />';
    $i++;
    $custombreak($i);    //<-- I'd like to break the loop with a custom function.
    // if ($i==3)        //<-- this is not what I'm looking for
    //    break;      

} while ($i < 10);
?>

これは有効な PHP コードではありませんが、私の言いたいことが理解できることを願っています。関数でループを脱出したい。

4

4 に答える 4

1

通常の機能を作成しても

function foo() {
  break 2; // this is not valid
}

while(true) {
  foo();
}

それは機能しません。これはプログラマーが行うことです:

function foo() {
  return true;
}

while(true) {
  if(foo()) break;
}

したがって、コードは次のようになります。

于 2012-09-01T19:31:41.803 に答える
0
<?php

function control($a){
    if($a==3)
        return false;
    return true;
}

$i = 0;
do {

    echo $i . '<br />';
    $i++;    

} while ( ($i < 10) && (control($i)) );

?>

この質問に対する答えですか?

于 2012-09-01T19:41:30.503 に答える
0

私は例外で方法を見つけました。

$i = 0;
try {
    do {
        $i++;
        echo $i . '<br />';
        custombreak($i);
    } while ($i <= 10);
} catch (Exception $e) {}

function custombreak($i) {
    if ($i > 3) throw new Exception("");
}

皆さんありがとう。

于 2012-09-01T21:17:39.297 に答える
-1

このコントロールはwhileループで使用できます。私が思う関数を書く必要はありません。

<?php

$i = 0;
do {

    echo $i . '<br />';
    $i++;    

} while ( ($i < 10) && ($i!=3) );
?>

複数のコントロールをご存知ですか?

于 2012-09-01T19:32:16.090 に答える