2010-08-23 15 views
21

Sunucu erişim değişkenleri yanı sıra mysql_connect ve mysql_select_db tanımladığım bir PHP dosyası var, bu işlevler hemen hemen her sayfada düzenli olarak kullanılırken, şu anda benim için mükemmel çalışan include() kullanıyorum ya da işlev önerirsiniz ve include() kullanırsam ya da kullanmak güvenli midir, herhangi bir kusur olup olmadığını bilmek ister misiniz?içerir, include_once, ister veya require_once?

Düzenleme: Unutmayacağım $_SESSION değişkenini de kullanacağım.

cevap

31

ikisi arasındaki tek fark dosyası bulunmazsa include ve include_once sadece bir uyarı göstermek ve sayfanın geri kalanını yüklenmeye devam oysa require ve kardeş require_once, önemli bir hatayla atmak olmasıdır. PHP'nin sayfanızın geri kalanını veritabanı bilgisini (varsayalım) yüklemeye çalışmasını istemiyorsanız, require_once'u kullanın. Dosyayı bir kereden fazla eklemeniz gerekmez, bu nedenle düzenli require işlevini kullanmaya gerek yoktur.

+0

Teşekkür ederim, require_once ile gidiyorum, evet ben veritabanı erişimi olmadan arka uçta hiçbir anlamı yoktur çünkü sunucu erişim değişkeni bir şey yanlış ise komut dosyası ölmek istiyorum. her neyse aynı şekilde kullanabilirim, mysql_connect ($ host, $ username, $ password) veya die (mysql_error()); ve sonra include() ile kullanın, bu aynı zamanda script'i ölmeye zorlar, require_once ile aynı mı? O değil mi? –

+0

@Ibrahim Azhar Armar: Evet, ama neden **? Demek istediğim, böyle bir hata kontrolüne sahip olmalısın, ama bu durumda 'include' kullanmada * no * noktası var. –

+0

Kabul ediyorum ve require_once() ile yapıyorum –

-1

require() sizin için daha iyidir. Çünkü zorunlu dosya, komut derlemesinden önce içerir. dahil inluce() kullanarak dinamikal.

+0

Burada söylemeye çalıştıkları şey gerçekten emin değilim ama alakalı olmasa OP'nin sorusu ... –

2

Veritabanı bağlantı değişkenleri için require_once() işlevinin kullanılması tercih edilir. Herhangi bir nedenle bağlantı başarısız olursa, hata mesajını gösterebilirsiniz.

-1

Bir sayfada birden fazla yer alıyorsanız, include_once() öğesini kullanmalısınız.

1

Sayfanız DB bağlantısı olmadan çalışmayacaksa, o zaman sadece doğru seçenek gerekir (bu ayarları iki kez yüklemek istemediğinizden, bunları bir kez yüklemeniz yeterli olacaktır). Ayarlar dosyası mevcut olmasa bile sayfanızı yüklemeyi deneyin.

+0

$ _SESSION değişkenleri de kullanıyorum, kullanıcının oturumlara dayalı olarak erişime izin vereceği backend ile uğraşıyordum, eğer require_once() kullanırsam hala yeterince iyi mi? –

0

İçerdiği include() ifadesi belirtilen dosyayı içerir ve değerlendirir.

Bir Kez İçeren include_once() ifadesi, komut dosyasının yürütülmesi sırasında belirtilen dosyayı içerir ve değerlendirir. Bu, include() deyimine benzer bir davranış olup, tek fark, bir dosyadaki kod zaten dahil edilmiş olsaydı, tekrar dahil edilmeyecek olmasıdır. Adından da anlaşılacağı gibi, sadece bir kez dahil edilecektir.

Gereklilik gerektirir() ve include(), hataları nasıl işledikleri dışında her şekilde aynıdır. İkisi de bir Uyarı üretir, ancak() gerekli ölümcül bir hataya neden olur. Başka bir deyişle, sayfanın işlenmesini durduracak eksik bir dosya istiyorsanız, require() öğesini kullanmaktan çekinmeyin.

Bir Kez Gerekli require_once() ifadesi, komut dosyasının yürütülmesi sırasında belirtilen dosyayı içerir ve değerlendirir. Bu, require() ifadesine benzer bir davranış olup, tek fark, bir dosyadaki kod zaten dahil edilmiş olması durumunda, tekrar eklenmeyecektir.

16

İşlevsel Çalışma: Tüm işlevler benzer işler yapar. Tüm fonksiyonlar, kodu yürütürken belirli bir dosyayı içerecek ve değerlendirecektir.

Fonksiyonel fark:

include_once vs içerir: tek içerir arasındaki fark() ve include_once bulunmaktadır(). Bir dosyadaki kod zaten dahil edilmişse, include_once() işlevini kullanırsak tekrar eklenmeyecektir. Include_once() yöntemi, dosyayı her seferinde bir defada içerir.

, aşağıdakileri içerir: include(), belirtilen zamanda bir yerde bulamadığı bir dosyayı bulamazsa, ancak komut yürütme işlemini durdurmaz;. Aynı senaryo için, require() önemli bir hata verir ve betiğin yürütülmesini durduracaktır.

taleplerine göre require_once: require() ve require_once() arasındaki sadece bir fark var. Bir dosyadan kod zaten dahil edilmişse, require_once() işlevini kullanırsak tekrar eklenmeyecektir. Require_once() yöntemi, dosyayı her defasında yalnızca bir kez içerir.

bu şaşırtıcı makaleleri gözden geçirin örnekle ayrıntılı bilgi almak için
(1) http://www.readmyviews.com/include-vs-include-once/
(2) http://www.readmyviews.com/include-vs-require/

İlgili konular