这类似于function_exists 返回 false 但声明会引发错误,但我认为这不是命名空间的问题,因为它是内部函数,而不是用户函数,这给了我问题。
我在我的 php 应用程序中使用 dompdf,他们的 dompdf 类中的以下函数给我带来了问题....
if ( !function_exists('sys_get_temp_dir')) {
/**
* Find the current system temporary directory
*
* @link http://us.php.net/manual/en/function.sys-get-temp-dir.php#85261
*/
function sys_get_temp_dir() {
if (!empty($_ENV['TMP'])) { return realpath($_ENV['TMP']); }
if (!empty($_ENV['TMPDIR'])) { return realpath( $_ENV['TMPDIR']); }
if (!empty($_ENV['TEMP'])) { return realpath( $_ENV['TEMP']); }
$tempfile=tempnam(uniqid(rand(),TRUE),'');
if (file_exists($tempfile)) {
unlink($tempfile);
return realpath(dirname($tempfile));
}
}
}
我得到的是
Fatal error: Cannot redeclare sys_get_temp_dir() on line 873
当我使用 get_defined_functions() 方法回显时,它会在列表末尾显示函数 sys_get_temp_dir 所以它甚至不应该进入我没想到的 if 语句?