Neden bu kadar rasgele adlandırılmış PHP fonksiyonları inşa edilir?

9 Cevap php

Bu işlevleri adlandırılır şekilde gerçek desen var gibi görünüyor, str_replace, strrpos, strip_tags, stripslashes sadece bazılarıdır.

Neden bu böyledir?

EDIT - Bu bir "troll" tipi yazı olarak geliyordu değildi - ben hep ben dilini kullanmak düşünüyorum sadece bir şey!

9 Cevap

PHP dili biraz organik büyüdü, bu yüzden fonksiyonları adlandırma bölgelerinde gelişigüzel olduğunu. Farklı biçimlerde birçok geriye uyumluluk için korunur.

Hafif anlatılanlar, ancak işlevi adlandırma ile konulara ek olarak, dilin organik büyüme başka bir talihsiz yan etkisi argüman sıralamada belirgin bir tutarsızlık olduğu, örneğin fonksiyonlarını in_array göz önünde ve strstr,

bool in_array (mixed $needle, array $haystack [, bool $strict])

string strstr (string $haystack, mixed $needle [, bool $before_needle=false])

Tuhaftır, PHP string fonksiyonları dizi işlevler etrafında diğer yol ise $haystack, $needle kullanmak gibi bu sıralamaların ile tutarlı gibi görünüyor, ama bu yeni birisi için alışmak biraz zaman alabilir PHP. İyi bir post on ExpressionEngine daha ayrıntılı olarak bu özel cilvesi hakkında konuşurken, yanı sıra bir discussion on the PHP bugs list var.

Dil olgunlaştıkça, daha sert ve tutarlı bir adlandırma kuralı uygulamak için çeşitli girişimleri vardır - dan Zend Framework Documentation:

Fonksiyon isimleri her zaman küçük harfle başlamalıdır. Bir işlev ismi birden fazla kelimeden oluştuğunda, her yeni kelimenin ilk harfi büyük olmalıdır. Bu genellikle "camelCase" biçimlendirme denir.

filterInput ()

getElementById ()

Biraz daha farklı bir almak için gelen 20 possible reasons why PHP function names and parameters are weird:

  • PHP yapıştırıcılar API'leri ve insanlar birlikte ve bazen bu dağınık alır

  • PHP fonksiyonları bazen sarhoş, birçok koşullar altında geliştirilmiştir

  • PHP işlevi adlandırma algoritması hala gizli kalır ve kırık olamaz

  • PHP insanlara şikayet etmek eğlenceli bir şeyler vermek için seçtim / blog / gülmek hakkında

  • PHP çözmek için başka bir sorun vardır

PHP bir "eski", hızlı büyüyen, açık kaynak programlama dilidir. Adlandırma sadece uzun tarihinin bir konudur ... Java arkasında Paz gibi PHP arkasında hiçbir "akademik" bir şirket var, wich adlandırma controlls ...

Ben gerçekten bu konularda nasıl görmüyorum. Sözdizimi sözdizimi. Herhangi bir özel desen takip etmiyor ama biz ne olursa olsun onu öğrenmek ingilizce biri için birçok insan dil, vardır. Bu sözdizimi bilmeden yerine tahmin ilgili.

Fonksiyonları tarihsel olarak birçok nedenle PHP adlandırma ve argüman-sipariş garabeti bir sürü o nedeniyle onların C meslektaşları, doğrudan haritalardır.

PHP Sanatçılar genellikle kendi ihtiyaçlarını karşılamak için diline katkıda bulunmuştur, bu yüzden dil organik olarak yetiştirilen ve zaman zaman kötü disipline etti. Onun popülaritesi de o dili hakkında kötü kararları onlar önerilmemektedir sonra bile canlı, yani onun ömrü boyunca geriye doğru uyumluluğu sağlamak için çabalamaktadır anlamına gelmiştir.

Dil yayık ile birlikte geriye dönük uyumluluk ve ad alanları eksikliği.

Dil en popüler web sitesi uygulama dillerinden birine 'Personal Home Page' den son 14 yılda büyüdü çünkü. Tüm bu işlevleri için planlanan Hiç kimse; bunlar da gerektiğinde bir defada ilave edildi.

Cevap Evrim ya da akılsız Tasarım belirtilebilir. Ben ;) emin değilim

Language devirlerde çok üzerinde geriye doğru uyumluluk için

Bu bir cüce-y görünüyor. Ancak, geriye dönük uyumluluk için.

PHP6 yardım adresini tam UTF-8 desteği getirerek bu sorunları yanı sıra hitap edecek.