PHP sembolleri kullanmak ya da ne zaman

1 Cevap php

Ben yazar sembolleri bunları kullanmak için geçerli olduğunda dışında kaçınılması gerektiğini söyleyen bir PHP kitabı okuyorum. Çok bilgilendirici şeyler, o sadece ayrıntılı veya kod örnekleri vermek ama o değil eğer.

Bunları veya kullanmak mantıklı zaman deneyimli PHP demet Birisi bana bu sembollerin ne bir örnek vermek, ve Can. Ben oldukça düz İngilizce alamadım çünkü ben etrafında başımı sarmak için bir örnek kod arıyorum. Kod bana İngilizce daha düz.

Edit:

O, bu dize, küresel ve sürekli hale getirecek bir 'sembolü' olarak bir dizeyi tanımlamak diyor, ama sabittir ve yanlışlıkla veya bilerek değiştirilemez çünkü güvenlik için iyidir. Ben bu semboller kullanılır zaman somut örnekler arıyorum.

1 Cevap

Ne demek varsayıyorum Constants?

Benim düşünceme - - gerekir PHP bu kullanarak karşı büyük bir nedeni sabit tanımlı değilse, PHP bir dize değeri olarak yorumlamak ve bunun gibi sadece bir haber değil, önemli bir hata atmak olmasıdır.

define("NUMBER_OF_PAGES", 1);

echo NUMBER_OF_PAGES;  // outputs "1"

echo NUMBR_OF_PAGES;   // outputs literally "NUMBER_OF_PAGES" and throws 
                       // Notice: Use of undefined constant NUMBR_OF_PAGES - 
                       // assumed 'NUMBR_OF_PAGES' in xyz

// constant() is a workaround but it takes away a lot 
// of a constant's elegance IMO:

echo constant("NUMBER_OF_PAGES"); // Returns "1"
echo constant("NUMBR_OF_PAGES"); // Returns null

Bu sabitler kullanır biraz hata eğilimli, özellikle (tanımlanmamış bir sabit kullanılması gibi ama her yerde yakın olarak kötü bir şey) daha az-daha-mükemmel kodlama uygulamalarını kullanarak onlarca veya E_NOTICE yüzlerce mesaj tetikleyebilir ve zor bunu yapmak büyük uygulamalarda, hataları tespit.

Temiz uygulama, E_NOTICE seviyesi mesajları (ve fark) ile ilgili mümkün olur, çünkü bu olur bir sorun daha az. Yine de, bir tanımsız sabit aklımda bir ölümcül hata olmalı, ve ben bu bir tasarım hatası görüyoruz.

Arama fonksiyonları ile IDE biraz sorunu hafifletmek ve yazım hatalarını önlemek yardımcı olabilir.

Varolmayan bir sabit ismi verilen null dönecektir fonksiyon constant() da vardır. (Yukarıdaki kod bakın.)

Concrete usage examples:

Sabitleri genellikle geçerli yolu ve / veya URL tanımlamak için kullanılır:

define("APP_WEBROOT", "http://www.mydomain.com/appname");
define("APP_WEBROOT_PATH", "/var/www/mydomain/appname");

ya da küresel ayarlarını tanımlamak için:

define("MAX_PAGES", 100);
define("MAX_ITEMS_PER_PAGE", 250);