2012-09-01 61 views
3

我想知道是否有可能在PHP中創建自定義中斷命令/函數。PHP中的create_function()自定義中斷命令/函數

例如,

<?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代碼,但我希望你明白我想說什麼。我想用函數逃避循環。

回答

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

謝謝大家。

1

即使創建正常功能

不起作用。這是程序員做的事:

function foo() { 
    return true; 
} 

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

所以,你的代碼將是..

-1

,你可以在while循環使用此控件。不需要寫一個我認爲的函數。

<?php 

$i = 0; 
do { 

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

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

你知道多重控制嗎?

+0

這不是問題的答案。 – Peter

+0

只是試圖幫助他:S – user1609468

0
<?php 

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

$i = 0; 
do { 

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

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

?> 

這是這個問題的答案嗎?

+0

否:D他問'break'沒有循環控制:)) – Peter

+0

haha​​:D但是這個循環控制BREAKS循環對嗎? :D – user1609468

+0

是的但是你沒有回答爲什麼'break'命令不起作用:))問題不是「如何使循環0到3」 – Peter