2014-11-12 18 views
10

Görünüş:PHP kodunda DIRECTORY_SEPARATOR ne zaman kullanılır? PHP kodu

require_once dirname(__FILE__).DIRECTORY_SEPARATOR . './../../../wp-config.php'; 
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'inc/options.php'; 

Yukarıdaki kod wordpress bir eklenti değil.

Neden bunun yarısının DIRECTORY_SEPARATOR kullandığını anlamıyorum, ancak diğer yarısı "/" kullanıyor?

+1

İyi soru :) –

+4

"DIRECTORY_SEPARATOR gerekli değildir, PHP her zaman kendi dosya işlevlerindeki uygun karaktere dönüştürür." – fiction

+0

'windows', dizin ayırıcı olarak '/' kullanımını anlar. PHP kodunu hem linux hem de windows üzerinde herhangi bir değişiklik yapmadan çalıştırıyorum. Ben '/' her zaman dosya yolları vb. Kullanın. Ana sorun 'windows' dosya isimleri açısından büyük/küçük harf duyarlı değildir, bu yüzden her zaman windows üzerinde doğru harf kullanmak önemlidir, aksi takdirde 'linux', –

cevap

3

Farklı işletim sistemlerinde farklı dizin ayırıcıları bulunduğundan. Windows'da,, Linux'ta /. DIRECTORY_SEPARATOR, bu OS dizin ayırıcısı ile sabittir. Her zaman yollarda kullanın.

Kod snippet'inde kötü uygulama kodunu açıkça görüyoruz. Çerçeve/cms yaygın olarak kullanılıyorsa, en iyi uygulama kodunu kullandığı anlamına gelmez.

+2

Peki o zaman neden aynı kod daha sonra aynı satırda açık bir şekilde kullanıyor? –

+0

@Hanky ​​웃 Panky, çünkü onun kötü kodu. – fiction

+1

Evet, OP'nin sadece kötü bir uygulama olup olmadığını veya aynı çizgide olması için herhangi bir amaca hizmet edip etmediğini bilmek istediği şey bu mu? Ve yorumunuz aslında soruya olası bir cevaptır. –

0

Kendi klasör ayırıcılarınızı kullanmayın. Eğer gerçekten OS düzgün bir şekilde işler olabilir

  • sınırlayıcı doğru yolu gereken bazı özel durumlarda

    1. , ancak birçok 3. parti uygulamalar ve başarısız olabilir olamaz: Her zaman DIRECTORY_SEPARATOR, çünkü kullanın!
    2. Bazı işletim sistemleri ayırıcılar ancak farklı bir şey olarak \ kullanmak/veya yok

    Unutma: sadece uzaktan sistemde sabit kullan - URI'lerinin veya istediğiniz o başka bir şey için bunu kullanmıyorum istemciye göndermek için (gerçekten bir tarayıcıdan başka bir şey yapmanıza gerek yok).