为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕村9548890 2019-07-05 16:08:32
“致命错误:无法重新声明<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中声明)我不知道为什么或如何会发生这样的错误。有什么想法吗?
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

此错误表示您的函数已被定义;这可能意味着:

  • 在两个文件中定义了相同的函数
  • 或者在同一文件中的两处定义相同的函数。
  • 或者在其中定义函数的文件包含了两次(因此,该函数似乎被定义了两次)。

要帮助解决第三点,一个解决方案是使用include_once而不是include包括你的functions.php文件-因此它不能包含超过一次。


查看完整回答
反对 回复 2019-07-05
?
慕仙森

TA贡献1827条经验 获得超8个赞

解决方案1

不要在循环中声明函数(例如foreachforwhile.)!在他们面前宣布。

解决方案2

您应该只包含该文件一次(其中存在该函数)一次:
用途:include_once("functions.php");
而不是:include     ("functions.php");

解决方案3

如果上述任何操作都没有帮助,则在函数声明之前添加一个检查以避免重新声明:

if (!function_exists('your_function_name'))   {
  function your_function_name()  {
    ........
  }}


查看完整回答
反对 回复 2019-07-05
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

在编写函数之前,可以先检查函数的名称是否存在。

  if (!function_exists('generate_salt')){
    function generate_salt()
    {
    ........
    }}

或者您可以将函数名更改为另一个名称。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 564 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信