fatal php error: `cannot redeclare function` while using include_once
fatal php error: `cannot redeclare function` while using include_once
我有一个辅助函数 helper.php
,内容为:
<?php
session_start();
function get_result($dbh, $sql) {
//return mssql_query($sql);
return $dbh->query($sql);
}
?>
包含在两个文件(information.php
和 commercial.php
)中,使用:
include_once 'helper.php'
不幸的是,这会生成稍微令人困惑的错误消息:
PHP Fatal error: Cannot redeclare get_result() (previously declared in helper.php:4) in helper.php on line 4
我知道我不能重新声明函数,因此我使用 include_once
构造,但无论如何它都会尝试重新声明函数。为什么?
如果有帮助;我正在使用 Mustache PHP,所有三个文件都位于 partials
文件夹中。
include_once
确保文件只包含一次。它不检查文件的内容或其中的函数。所以当添加两个具有相同函数名的文件时,出现错误是很自然的!
来自手册:
include_once
may be used in cases where the same file might be
included and evaluated more than once during a particular execution of
a script, so in this case it may help avoid problems such as function
redefinitions, variable value reassignments, etc.
斜体表示函数在同一个文件中,不能在不同文件中。
解决此错误的一种方法是将您的辅助函数包装在支票中。
您可以尝试类似的方法:
if (! function_exists('get_result')) {
function get_result()
{
//your code
}
}
希望对您有所帮助!
我有一个辅助函数 helper.php
,内容为:
<?php
session_start();
function get_result($dbh, $sql) {
//return mssql_query($sql);
return $dbh->query($sql);
}
?>
包含在两个文件(information.php
和 commercial.php
)中,使用:
include_once 'helper.php'
不幸的是,这会生成稍微令人困惑的错误消息:
PHP Fatal error: Cannot redeclare get_result() (previously declared in helper.php:4) in helper.php on line 4
我知道我不能重新声明函数,因此我使用 include_once
构造,但无论如何它都会尝试重新声明函数。为什么?
如果有帮助;我正在使用 Mustache PHP,所有三个文件都位于 partials
文件夹中。
include_once
确保文件只包含一次。它不检查文件的内容或其中的函数。所以当添加两个具有相同函数名的文件时,出现错误是很自然的!
来自手册:
include_once
may be used in cases where the same file might be included and evaluated more than once during a particular execution of a script, so in this case it may help avoid problems such as function redefinitions, variable value reassignments, etc.
斜体表示函数在同一个文件中,不能在不同文件中。
解决此错误的一种方法是将您的辅助函数包装在支票中。
您可以尝试类似的方法:
if (! function_exists('get_result')) {
function get_result()
{
//your code
}
}
希望对您有所帮助!