php ölümcül hata-hiçbir fikri neden

5 Cevap

im Bu hata mesajı alıyorum

Fatal error: Cannot redeclare get_db_conn() (previously declared in `/home/maxer/domains/x/public_html/xmasapp/dbfuncs.php:21) in /home/maxer/domains/x/public_html/xmasapp/dbfuncs.php on line 24`

Bu kod

function get_db_conn() {
  $conn = mysql_connect($GLOBALS['db_ip'], $GLOBALS['db_user'], $GLOBALS['db_pass']);
  mysql_select_db($GLOBALS['db_name'], $conn);
  return $conn;
}

line 21 değinmektedir

$conn = mysql_connect($GLOBALS['db_ip'], $GLOBALS['db_user'], $GLOBALS['db_pass']);

hat 24 fonksiyonunun kapanış kıvırcık dirseği

Ben dışarı "view" kod en sökük, yukarı benim kod temiz ve ayrı dosyalar içine koydum ama hiçbir mantığı değişmedi çalıştı kadar kod iyi çalıştı

5 Cevap

Büyük olasılıkla iki kez bir dosyayı içeren ya da aynı dosyayı her içeren iki dosyalar dahil edilir.

Sen include_once() veya ne zaman dahil ne daha iyi bir yapıya kurarak bunu önleyebilirsiniz.

EDIT

Bu deneyin ve size kurulum dahil bir hata görürseniz bakın.

echo "<pre>";
print_r(get_included_files());
echo "</pre>";

Bir yerde iki kez bir dosyayı içeren konum ya da iki dosya işlevin bir tanımı vardır.

Bu bir içerir dosyada mı? Dosya fazla kez dahil oluyor içerir mi?

Get_db_conn iki farklı yerlerde bu işlevi yoksa birden çok kez dahil oluyor bir kez daha tanımlanır ve büyük bir ihtimalle çünkü şikayetçi.

Sizin hata iletisi diyor:

Hat 24 üzerinde [...] / dbfuncs.php içinde: get_db_conn Redeclare () (21 daha önce [...] / dbfuncs.php bildirilen)

Eğer birden çok kez ilan edilir ki get_db_conn() adında bir işlevi var. Lütfen dbfuncs.php dosya kendisi dahil mi?

Bu sen () birden fazla kez aynı dosyayı ing dahil mümkündür. Bu nedenle ben () mümkün include_onceyi kullanmak ister.

Sen (her ikisi de get_db_conn denir ()) aynı adları ile iki işlevlerini bildirmek