İşlevlerin Aşırı Yüklenme Özelliği
&warn.deprecated.feature-7-2-0.removed-8-0-0;
Genellikle, çalışan bir PHP uygulamasını çok baytlı bir ortamda çalışır duruma
getirmek çoğu kişiye zor gelir. Bu durum genellikle çok baytlı kodlanmış
dizgelerle düzgün şekilde çalışamayan substr gibi standart
dizge işlevleriyle yazılmış PHP uygulamalarında karşımıza çıkar.
Mbstring modülü, bir uygulamayı çok baytlı ortamlarda çalışır duruma getirmek
için kod değişikliği yapılmaksızın standart dizge işlevlerinin çok baytlı
taydaşlarının yerini almasını sağlayan 'işlevlerin aşırı yüklenme' özelliğini
destekler. Örneğin, eğer aşırı yükleme etkin kılınmışsa
substr işlevi yerine mb_substr işlevi
çağrılır. Bu özellik, çoğu durumda, sadece tek baytlı karakter kodlamasını
destekleyen uygulamaların çok baytlı karakter kodlaması kullanılan ortamlara
kolayca uyarlanmasını sağlar.
İşlevlerin aşırı yüklenmesini sağlamak için &php.ini; dosyasında
mbstring.func_overload yönergesine, aşırı yüklenecek işlev
sınıflarını belirten bit maskelerinden oluşan bir değerin atanması gerekir.
mail işlevini aşırı yüklemek için 1, dizge işlevleri için
2, düzenli ifade işlevleri için 4 girmek gerekir. Örneğin, yönergeye 7 değeri
atanırsa bu üç sınıfa ait işlevler aşırı yüklenecektir. Aşırı yüklenebilen
işlevler aşağıda listelenmiştir.
Aşırı yüklenebilen işlevler
mbstring.func_overload değeri
özgün işlev
aşırı yükleyen işlev
1
mail
mb_send_mail
2
strlen
mb_strlen
2
strpos
mb_strpos
2
strrpos
mb_strrpos
2
substr
mb_substr
2
strtolower
mb_strtolower
2
strtoupper
mb_strtoupper
2
stripos
mb_stripos
2
strripos
mb_strripos
2
strstr
mb_strstr
2
stristr
mb_stristr
2
strrchr
mb_strrchr
2
substr_count
mb_substr_count
Dizin bağlamında yapılandırmalarda işlevlerin aşırı yüklenme özelliğinin
kullanılması önerilmez. Çünkü, bu özelliğin üretim ortamında kullanılabilecek
kararlılığa sahip olduğu henüz onaylanmamıştır; bu bakımdan önceden
kestirilemeyen bazı davranışlarla karşılaşmak olasıdır.