“Фатальная ошибка: не Может повторно объявить <функционируют>”

У меня есть функция (это точно, как это появляется от вершины моего файла):

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

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

    return $salt;
}
...

И по некоторым причинам, я продолжаю получать ошибку:

Фатальная ошибка: не Может повторно объявить generate_salt () (ранее объявленный в/Applications/MAMP/htdocs/question-air/includes/functions.php:5) в/Applications/MAMP/htdocs/question-air/includes/functions.php на строке 13

Я не могу выяснить, почему или как такая ошибка могла произойти. Какие-либо идеи?

35
задан T.Todua 20 September 2016 в 08:27
поделиться

4 ответа

В этой ошибке говорится, что ваша функция уже определена; что может означать:

  • у вас есть одна и та же функция, определенная в двух файлах
  • , или у вас есть одна и та же функция, определенная в двух местах одного и того же файла
  • , или файл, в котором определена ваша функция, включен два раза ( так что, похоже, функция определяется два раза)

Чтобы помочь с третьим моментом, решением было бы использовать include_once вместо include при включении ваших функций .php файл - поэтому он не может быть включен более одного раза.

70
ответ дан 27 November 2019 в 06:25
поделиться

Я бы рекомендовал использовать get_included_files - поскольку Паскаль говорит, что вы либо каким-то образом смотрите не тот файл, либо эта функция уже определена в файле, который был включен.

require_once также полезен, если файл, который вы пытаетесь включить, важен.

0
ответ дан 27 November 2019 в 06:25
поделиться

Вы, вероятно, включаете файл functions.php более одного раза.

5
ответ дан 27 November 2019 в 06:25
поделиться

Так как предоставленный вами код явно ничего не включает, либо он дважды инклюдируется, либо (если скрипт является точкой входа в код) должна быть установлена автоматическая предопределяющая установка в конфигурационном файле вебсервера / php.ini, или же у вас загружено действительно непонятное расширение, которое определяет функцию.

0
ответ дан 27 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: