Не может повторно объявить saveorder () (ранее объявленный в:10) на строке 71

Я получаю эту ошибку для переобъявления saveorder () однако, я не думаю, что я?!?

Не может повторно объявить saveorder () (ранее объявленный в:10) на строке 71

8.function saveOrder()
9.{
10. include 'tables.php';
11. $orderId       = 0;
12. $shippingCost  = 5;

...

68. }
69. echo $orderId;
70. return $orderId;
71. }
5
задан Tom 25 March 2010 в 23:14
поделиться

4 ответа

Вы могли включать файл, содержащий функцию, более одного раза:

  include 'file.php';
  include 'file2.php';

file.php:

  include 'file2.php';

Невозможно повторно объявить saveorder () (ранее объявлено in: 10) в строке 71

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

10
ответ дан 18 December 2019 в 09:48
поделиться

Либо table.php содержит функцию, также называемую saveOrder (), либо отправленный вами файл на самом деле IS tables.php. PHP не может иметь 2 функции с одинаковыми именами в одном пространстве имен.

1
ответ дан 18 December 2019 в 09:48
поделиться

Вы должны включать текущий файл (где строки) несколько раз.

Простое исправление - использование

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

Однако я рекомендую создать новый файл functions.php, в том числе только один раз, и поместив туда все функции.

4
ответ дан 18 December 2019 в 09:48
поделиться

это также может быть вызвано удалением функции saveorder () внутри другая функция, которая вызывается несколько раз.

например.

function func1()
{
   function saveorder()
   {
       echo 'x';
   }
   saveorder();
}

for ($i=0;$i<2;++$i)
    func1();
1
ответ дан 18 December 2019 в 09:48
поделиться
Другие вопросы по тегам:

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