在PHP中使用create_Function()自定义中断命令/函数


Custom Break Command/Function with create_function() in PHP

我想知道在PHP中是否可以创建一个自定义的break命令/函数。

例如,

<?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代码,但我希望你明白我想说的。我想用函数来逃避循环。

即使创建了正常函数

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

那不管用。这就是程序员所做的:

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

所以你的代码应该是…

  • http://codepad.org/lztnGflZ
<?php
function control($a){
    if($a==3)
        return false;
    return true;
}
$i = 0;
do {
    echo $i . '<br />';
    $i++;    
} while ( ($i < 10) && (control($i)) );
?>

这是这个问题的答案吗?

我找到了一种处理异常的方法。

$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("");
}

谢谢大家。

您可以在while循环中使用此控件。我想不需要写函数。

<?php
$i = 0;
do {
    echo $i . '<br />';
    $i++;    
} while ( ($i < 10) && ($i!=3) );
?>

你知道多重控制,不是吗?