Satırda 71: saveorder Redeclare () (10 önceden ilan)

5 Cevap

I), ancak ben olduğumu sanmıyorum (re-ilan saveorder için bu hatayı alıyorum?!?

Satırda 71: saveorder Redeclare () (10 önceden ilan)

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

...

68. }
69. echo $orderId;
70. return $orderId;
71. }

5 Cevap

Sen bir kez daha işlevini içeren dosyayı dahil olabilir:

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

file.php:

  include 'file2.php';

Cannot redeclare saveorder() (previously declared in :10) on line 71

Kullanmak include_once veya require_once emin bir dosyada ilk gibi iki ayrı yerde (iki kez bunu eklemek çalışırsanız bu daha sonra, sorunlara neden olabilir (olmuyor yapmak ya Eğer _once kısmını) eklerseniz nedense bir işlev içinde, ikinci bir işe yaramaz.

Geçerli dosyayı (çizgiler nereli) birden çok kez dahil edilmelidir.

Kolay bir düzeltme kullanıyor

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

Ancak, sadece bir kez olmak üzere yeni bir functions.php dosyası oluşturma ve orada tüm fonksiyonları yerleştirilmesini öneriyoruz.

Ya tables.php ayrıca saveOrder () adında bir fonksiyon içerir, ya da aslında yayınlanmıştır dosya tables.php IS. PHP aynı ad aynı isimde 2 fonksiyonlara sahip olamaz.

Ben bu var nereye beri PHP bir hata olmalı bence ": 10" Ben her yerde benim kodunda meydana gelmez garip semboller her çeşit olsun - yani. bir kez bu olabilir: "0", bir dahaki sefere ": 196870" ve bir dahaki sefere! "qhsu89s3". Ben de yenilemeden önce biraz beklemek durumunda daha sonra normal kendini sıralar bulabilirsiniz.

Çok cesaret verici değil ben söylemek zorundayım, ama ben Windows üzerinde PHP ile ilgili bir sorun sanırım.

Bu aynı zamanda () birden çok kez denir başka bir işlev içinde saveorder delcared ediliyor olması neden olabilir.

örn.

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

for ($i=0;$i<2;++$i)
    func1();