我想調試file_exists()
在我的網站上佔用多少時間。爲了進行調試,我想臨時禁用所有file_exists()
實例,以嘗試沒有它的網站生成速度。我可以在整個PHP腳本中禁用/跳過某個函數嗎?
有沒有簡單的方法來做到這一點?我正在使用PHP 5.3.3。
我想調試file_exists()
在我的網站上佔用多少時間。爲了進行調試,我想臨時禁用所有file_exists()
實例,以嘗試沒有它的網站生成速度。我可以在整個PHP腳本中禁用/跳過某個函數嗎?
有沒有簡單的方法來做到這一點?我正在使用PHP 5.3.3。
您可以在PHP中使用disable functions,但它確實如此:它完全禁用了該功能。你正在尋找的東西根本不可能,因爲如果你「禁用」一個函數,但不希望腳本失敗,函數必須返回一些有用的東西。 PHP應該如何爲每個內建函數和用戶空間函數返回?特別是因爲PHP無法知道,其中的每個上下文都是正確的值:在某些情況下,file_exists()
應返回true
,在某些false
中使腳本工作。當數組和對象發揮作用時,它會變得非常複雜(顯然)。
另一種方法是使用自定義函數覆蓋函數:PHP首先在當前名稱空間中搜索非限定函數名稱,然後才使用全局函數名稱。這意味着您可以在每個名稱空間中創建名爲file_exists()
的函數。
但是我的最終建議是:不要在你的代碼中進行調試和分析。 改爲使用調試器和分析器。
試着寫一個潮頭功能,例如調用它,而不是file_exists()
:
<?php
function call_file_exists($file) {
$debug = true;
if($debug) {
$_SESSION["count"]++; //count all event when file_exist called
return false;
} else { //if no debug, normal function call and return the result
return file_exists($file);
}
}
?>
所以,如果你打印$_SESSION["count"];
它會顯示來電的號碼。
不是我該怎麼做,但是,你可以在php.ini中使用'disable_functions' – 2013-03-14 00:11:16