PHP ilişkisel diziler karşı sabitler karşı Değişkenler

4 Cevap php

Ben küçük bir proje üzerinde çalışıyor, ve bir şekilde uluslararası destek uygulamak gerekir ediyorum. Ben sonradan dahil edilebilecek bir dosya, metin sembolleri bir sürü tanımlamak için sabitleri kullanarak çizgisinde düşünüyorum. Ancak, ben değişkenleri kullanarak hızlı olup olmadığından emin değilim, ya da ben bir performans isabet çok fazla olmadan ilişkilendirilebilir diziler kullanarak uzakta alabilirsiniz.

Ne PHP sabit değerleri tanımlamak için daha iyi performans-bilge - sabitleri define("FOO", "...") kullanılarak tanımlanır, veya $foo = "..." gibi basit değişkenler, ya da benzeri bir ilişkisel diziler $symbols["FOO"]?

4 Cevap

Performansında herhangi bir fark fark orada olacak değil yani bu konuda endişelenmeyin. Korumak daha kolay olacak ne gerekiyorsa yapın.

Çok karmaşık değilse Şahsen ben bir ilişkisel dizi ile gitmek istiyorum. Işler biraz daha karmaşık iseniz o gettext kullanın.

gettext düşünün

This question is not performance related.
No syntax issue (i.e. constants vs. variables) can affect performance

Derlenen dillerde, sabitler performans ve bellek gereksinimlerini etkileyen ve sabit değeri ile derleyici tarafından değiştirilir.

PHP define bildiği yavaş. O kadar biri bile sorunu çözmek için bir PHP uzantısı yazdı ki: http://pecl.php.net/package/hidef


Now that I think of it, this extension could a nice option to consider for you internationalization support.
It allows you to define the constants in a separate ini file, looking something like:

int N     = -191
str ABC   = "xyz"
float PIE = 3.1419
bool ART  = true

kolay olduğu okuma / olmayan programcılar için idrak (örneğin çevirmenler)

Sen Zend_Translate ve Zend_Locale kullanarak artı (vb Zend_Date, Zend_Currency.) Ihtiyacınız ne olursa olsun diğer bileşenler denemek isteyebilirsiniz. Onun filespace açısından app boyutunu artırma olacak, ancak kolayca tüm çeviriler önbelleğe ve size (vb getext, TMX, csv, XLIFF,) sizin çeviriler için farklı fomrats bir dizi seçim yapmanızı sağlar .