2012-12-29 47 views
-1

今天我注意到,缺少的函數dosent在if內部時顯示錯誤。看什麼是錯誤的,因爲是很難調試如何在丟失函數時顯示錯誤if

<?php if(3 >1): ?> 

    <?php echo missingFunction(3); ?> 

<?php else: ?> 

    <?php echo missingFunction(3); ?> 

<?php endif; ?> 

如果我呼籲函數自身的

//這將顯示該功能缺失

<?php echo missingFunction(4); ?> 

在我有文件

ini_set('display_errors', 1); 
error_reporting(E_ALL); 
+0

你的邏輯,似乎都不清楚,什麼意思參數'3'和'4'? –

+0

只是簡單的例子數字意味着什麼 – grape1

+0

什麼錯誤是(不)顯示? – shawndreck

回答

1

如果xy函數在(negati) ve)if - 只有當它被觸發。不可能。

但是你可以這樣做(檢查)文件,你應該在手動(硬編碼)中編寫「可疑/可疑/隱藏/如果」功能..更好,然後什麼也沒有。

$maybe_fns = (function1,function2); //... you should type in `if` functions here, manually 
$check = @explode(',', $maybe_fns); 

    while (list($key,$xxx) = each($check)) 
    { 
    if(!function_exists($xxx) 
    { 
    echo '<b>Warning:</b> No function <b>'.$xxx.'</b><br>'; 
    } 
    } 

可能在阿爾法來方便&測試testings,而且可以肯定的功能文件的更好,然後閱讀一堆。

1

PHP中函數的存在只在解釋器執行語句的最後一刻才被確定。

因此,如果您在從未評估爲true的情況下有缺少的功能,則不會觸發錯誤。

例如:

if (false) { 
    this_function_does_not_exist(); // this never gets run 
} 
// no errors 
+0

好吧,但'3> 1'是真的,反正好點... –

+0

@NomikOS而這就是你的實際代碼?不知何故,我不認爲我們在這裏看到正確的事情。 –

+0

不理解你。 (這個問題不是我的)。在任何情況下,代碼都會顯示出來,它應該引發一個致命的錯誤。 hmmlollol(用戶:)說他沒有得到那個錯誤... –