I'm wondering if it is possible in PHP to create a custom break command/function.
我想知道在PHP中是否可以创建自定义中断命令/功能。
For example,
例如,
<?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);
?>
This is not valid PHP code but I hope you get what I'm trying to say. I'd like to escape the loop with the function.
这不是有效的PHP代码,但我希望你得到我想说的。我想用函数逃避循环。
4 个解决方案
#1
1
Even if you create normal function
即使你创建了正常的功能
function foo() {
break 2; // this is not valid
}
while(true) {
foo();
}
that doesn't work. This is what programmers do:
这不起作用。这是程序员所做的:
function foo() {
return true;
}
while(true) {
if(foo()) break;
}
So your code would be..
所以你的代码将是......
- http://codepad.org/lztnGflZ
- http://codepad.org/lztnGflZ
#2
0
<?php
function control($a){
if($a==3)
return false;
return true;
}
$i = 0;
do {
echo $i . '<br />';
$i++;
} while ( ($i < 10) && (control($i)) );
?>
is it an answer for this question ?
这个问题的答案是什么?
#3
0
I found a way with Exceptions.
我找到了一种例外方式。
$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("");
}
Thanks all.
谢谢大家。
#4
-1
you can use this control in while loop. Don't need to write a function i think.
你可以在while循环中使用这个控件。我认为不需要写一个函数。
<?php
$i = 0;
do {
echo $i . '<br />';
$i++;
} while ( ($i < 10) && ($i!=3) );
?>
You know multiple controls don't you ?
你知道多个控件不是吗?
#1
1
Even if you create normal function
即使你创建了正常的功能
function foo() {
break 2; // this is not valid
}
while(true) {
foo();
}
that doesn't work. This is what programmers do:
这不起作用。这是程序员所做的:
function foo() {
return true;
}
while(true) {
if(foo()) break;
}
So your code would be..
所以你的代码将是......
- http://codepad.org/lztnGflZ
- http://codepad.org/lztnGflZ
#2
0
<?php
function control($a){
if($a==3)
return false;
return true;
}
$i = 0;
do {
echo $i . '<br />';
$i++;
} while ( ($i < 10) && (control($i)) );
?>
is it an answer for this question ?
这个问题的答案是什么?
#3
0
I found a way with Exceptions.
我找到了一种例外方式。
$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("");
}
Thanks all.
谢谢大家。
#4
-1
you can use this control in while loop. Don't need to write a function i think.
你可以在while循环中使用这个控件。我认为不需要写一个函数。
<?php
$i = 0;
do {
echo $i . '<br />';
$i++;
} while ( ($i < 10) && ($i!=3) );
?>
You know multiple controls don't you ?
你知道多个控件不是吗?