猿问

“致命错误:无法重新声明<function>”

“致命错误:无法重新声明<function>”

我有一个函数(从我的文件顶部看,它就是这样出现的):

<?php//dirname(getcwd());function generate_salt(){
    $salt = '';

    for($i = 0; $i < 19; $i++)
    {
        $salt .= chr(rand(35, 126));
    }

    return $salt;}...

出于某种原因,我一直在犯这样的错误:

致命错误:无法重新声明Generate_SALT()(以前在第13行的/Applications/MAMP/htdocs/question-air/includes/functions.php:5)中在/Applications/MAMP/htdocs/question-air/includes/functions.php中声明)

我不知道为什么或如何会发生这样的错误。有什么想法吗?


慕村9548890
浏览 565回答 3
3回答

陪伴而非守候

此错误表示您的函数已被定义;这可能意味着:在两个文件中定义了相同的函数或者在同一文件中的两处定义相同的函数。或者在其中定义函数的文件包含了两次(因此,该函数似乎被定义了两次)。要帮助解决第三点,一个解决方案是使用include_once而不是include包括你的functions.php文件-因此它不能包含超过一次。

慕仙森

解决方案1不要在循环中声明函数(例如foreach,&nbsp;for,&nbsp;while.)!在他们面前宣布。解决方案2您应该只包含该文件一次(其中存在该函数)一次:用途:include_once("functions.php");而不是:include &nbsp; &nbsp; ("functions.php");解决方案3如果上述任何操作都没有帮助,则在函数声明之前添加一个检查以避免重新声明:if&nbsp;(!function_exists('your_function_name'))&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;function&nbsp;your_function_name()&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;........ &nbsp;&nbsp;}}

慕雪6442864

在编写函数之前,可以先检查函数的名称是否存在。&nbsp;&nbsp;if&nbsp;(!function_exists('generate_salt')){ &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;generate_salt() &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;........ &nbsp;&nbsp;&nbsp;&nbsp;}}或者您可以将函数名更改为另一个名称。
随时随地看视频慕课网APP
我要回答