2010-02-16 3 views
6

Я новичок в php, и я видел довольно неоднозначное соглашение о названии функций в php, и это меня смущает, поскольку я регулярно забываю имена функций. Полагаю, я должен привести вам пример.PHP: Неоднозначные имена функций

Если функция для кодирования является htmlentities, то почему он напротив назван html_entitiy_decode, а не что-то вроде entitiesdecode или тот, который более близок к htmlentities.

Есть также соответствующие имена функций, но я думаю, что php не имеет последовательного подхода к наименованию своих функций.

Любые идеи, пожалуйста, потому что мне трудно запомнить имена функций. Спасибо

+0

То, что я обычно делаю до того, как я запустил свой редактор, запускает документы PHP. Я загрузил их в удобное '.chm' для Windows (я даже считаю, что есть и .chm зрители для других ОС). Загружаемые документы находятся здесь: http://www.php.net/download-docs.php –

+1

Вот просмотр .chm для OS X: http://chmox.sourceforge.net/. И вот несколько для Linux: http://www.linux.com/archive/articles/122171 –

+0

@fireeyedboy: да, это один из лучших ресурсов для открытия. – Sarfraz

ответ

9

Нет, PHP на самом деле не имеют последовательный подход к функциям имен - это, главным образом, по двум причинам:

  • Исторические причины: когда функции были выпущены с этими именами, они не могут быть изменены
  • Расширения/библиотеки: PHP - это «клеящий» язык, который включает в себя несколько внешних библиотек и часто использует имена функций этих библиотек, которые не обязательно согласованы.

К счастью, сообщество разработчиков и разработчиков PHP знает об этом и пытается не повторять эту ошибку сейчас, когда они разрабатывают новые функции, но, скорее всего, это останется прежним для старых функций.


Лучшее, что вы можете сделать, это принять одно соглашение об именах для ваших классов/функций/методов/переменных и уважать его в ваших проектах; это уже будет хорошим началом.

+0

@Pascal: великий и самый логичный ответ i belive, извините, я не мог проголосовать за вас, потому что он требует от меня репутации по крайней мере 15, но в любом случае это действительно помогло, спасибо :) – 2010-02-16 11:46:18

+0

@Pascal: +1 я могу сделать это сейчас :) – 2010-02-16 11:47:28

+0

@phpBOY: добро пожаловать :-) ;;; И добро пожаловать на СО! –

2

Я боюсь, что это проблема с PHP, с которой вам придется жить. Вы можете обернуть эти «неназванные» функции своими собственными, но это, очевидно, сделает вызов этих функций более дорогостоящим.

3

Там несколько связанных question and answer in the PHP FAQ about parameter order:

Я не могу запомнить порядок параметров функций PHP, они случайным образом?

PHP - это клей, который объединяет сотни внешних библиотек, поэтому иногда это становится беспорядочным. Однако простое эмпирическое правило выглядит следующим образом: Параметры функции массива упорядочены как «игла, стога сена», тогда как функции String противоположны, поэтому «стога сена, игла».

Первое предложение ответа может быть применено и к именованию функций.

Для ваших собственных функций взгляните на Userland Naming Guide и/или рассмотрите следующие правила кодирования, такие как Zend или PEAR.

0

Я бы дал простой ответ, факт в том, что это из-за совместимости. Функция, однажды заданная с именем, не может быть отменена, поскольку она использовалась в тысячах проектов и в ядре языка, а также в груше и клюве. Спасибо

+0

@Sarfraz: да, это кажется довольно правильным и коротким ответом спасибо – 2010-02-16 12:05:58

Смежные вопросы