2011-10-25 68 views
2

我有以下代碼:終止母公司方法執行

class A 
{ 
    function example($bool) 
    { 
     echo "Bob"; 
     if($bool === true) 
     { 
     //how to terminate? 
     } 
    } 
} 

class B extends A 
{ 
    function example($bool) 
    { 
     echo "Alice"; 
     parent::example($bool); 
     echo "Charlie"; 
    } 
} 

如果我叫

$x = new B; 
$x->example(false); 

i'll得到 「AliceBobCharlie」 預期

,我想那是什麼如果我通過,只會出現「AliceBob」。說:我想終止執行$ x->父例方法

我希望你能找到我。這個怎麼做?

感謝您的幫助

+0

afaik在PHP中沒有本地多線程,所以你不能從外部終止進程,因爲你沒有外部線程來執行它 –

+2

@ 0xDEADBEEF:除了調用exit或die以外,你不能這樣做,殺死整個劇本...順便說一句,愛你的暱稱! – RageZ

回答

7

嗯......要麼你從A::example()返回一個布爾值,並檢查它在B::example()來決定是否應該繼續。

如果您確實想要中斷,可以拋出異常。但是,使用異常來處理控制流是不好的設計。