«Неустранимая ошибка: невозможно повторно объявить <function>» - PullRequest
32 голосов
/ 23 декабря 2009

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

<?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

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

Ответы [ 14 ]

0 голосов
/ 05 марта 2014

или вы можете создать функцию в цикле

  • например

    для ($ i = 1; $ i <5; $ i ++) { функция foo () { эхо «что-то»; } } </p>

Foo ();
// Это покажет ошибку относительно объявления

0 голосов
/ 17 сентября 2011

У меня была такая же проблема. И, наконец, это было двойное включение. Один включить в файл с именем X. Другой включить в файл с именем Y. Зная, что в файле Y я включил ('X')

0 голосов
/ 23 декабря 2009

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

0 голосов
/ 23 декабря 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...