2

所以 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 中的权限被拒绝

因此,虽然它只是一个警告,仅此而已,但您永远不应该在现场打开警告,或者任何类型的错误。那么,当它明确指出它返回真或假而不是警告或致命时,我该如何处理呢?

4

2 回答 2

0

您可以建立一个自定义错误处理程序,这通常是一个很好的做法:http ://www.php.net/set-error-handler

您可以使用它以您认为合适的任何方式处理任何 PHP 错误。除此之外,您将不得不关闭错误/警告日志记录(正如您所说,这不是一个好习惯),或者使用 @ 抑制(通常应该避免,但在这种情况下可能适合。)

就我个人而言,我同意返回 true/false 以指示失败的函数已经不需要在失败时发出警告。但是,这对你来说就是 PHP。

于 2013-03-18T17:47:19.190 回答
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;
}
于 2013-03-18T18:08:59.763 回答