所以php中流行的mkdir()函数会在以下代码中向我发出警告:
public function check_dir($dir, $create_dir = false) {
if (is_dir ( $dir )) {
return true;
} elseif ($create_dir == true) {
return mkdir ( $dir );
}
return false;
}
很容易知道发生了什么。所以我不会解释。但是在mkdir()行上我得到了:
警告:mkdir():第70行/var/www/wordpress/wp-content/themes/Aisis-Framework/AisisCore/FileHandling/File.php中的权限被拒绝
因此,虽然它只是一个警告而不是更多,但你永远不应该在现场发出警告,或者出现任何类型的错误。那么当它清楚地表明它返回真或假而不是警告或致命时,我该如何处理呢?
答案 0 :(得分:0)
您可以建立自定义错误处理程序,这是一般的好习惯:http://www.php.net/set-error-handler
您可以使用它以任何您认为合适的方式处理任何PHP错误。除此之外,你必须关闭错误/警告记录(如你所说,不是一个好的做法),或使用@抑制(一般应该避免,但在这种情况下可能是合适的。)
就我个人而言,我同意返回true / false以指示失败的函数已经不需要在失败时发出警告。但是,那是你的PHP。
答案 1 :(得分:0)
您应该在生产服务器中关闭警告......但更好的是......您可以检查代码中的权限......
function checkDir($dir, $createDir = false) {
if ($createDir === true) {
if (is_dir($dir))
return true;
$baseDir = dirname($dir);
if (! is_dir($baseDir) || ! is_writable($baseDir)) {
return false;
}
return mkdir($dir);
} else {
return is_dir($dir);
}
return false;
}