Кажется, что нет никакой реальной модели для того, как называются функции, str_replace, strrpos, strip_tags, stripslashes – это всего лишь некоторые.
Почему это так?
EDIT – это не означало, что это сообщение типа «тролль» – это то, что я думаю каждый раз, когда я использую язык!
Язык PHP несколько выражен органично, поэтому назначение функций беспорядочно по частям. Многие из разных форматов сохраняются по соображениям обратной совместимости.
Небольшое отступление, но помимо проблем с названием функций другой неудачный побочный эффект органического роста языка является очевидной несогласованностью в упорядочении аргументов, например, рассмотрим функции in_array и strstr :
bool in_array (mixed $needle, array $haystack [, bool $strict]) string strstr (string $haystack, mixed $needle [, bool $before_needle=false])
Как ни странно, PHP, по-видимому, внутренне согласуется с этими упорядочениями, поскольку все строковые функции, похоже, используют $haystack, $needle
а функции массива – наоборот, но это может немного привыкнуть к кому-то новому для PHP. В ExpressionEngine есть хорошая публикация об этом конкретном причуде более подробно, а также обсуждение списка ошибок PHP .
По мере созревания языка существуют различные попытки реализовать более жесткое и последовательное соглашение об именах – из документации Zend Framework :
Имена функций всегда должны начинаться с строчной буквы. Когда имя функции состоит из более чем одного слова, первая буква каждого нового слова должна быть заглавной. Это обычно называется форматированием «camelCase».
filterInput ()
getElementById ()
Для немного другого подхода, из 20 возможных причин, почему имена и параметры функций PHP странны :
PHP склеивает API и людей вместе, а иногда это становится беспорядочным
PHP-функции были разработаны при многих обстоятельствах, иногда пьяны
Алгоритм именования функций PHP по-прежнему остается секретом и не может быть взломан
PHP решил дать людям что-то забавное, чтобы жаловаться / блог / смеяться
У PHP есть другие проблемы
Исторически многие из функций являются прямыми картами для их C
аналогов, поэтому из-за этого возникает много странностей приписывания и упорядочивания аргументов в PHP.
Соавторы PHP, как правило, вносили свой вклад в язык, чтобы удовлетворить свои собственные потребности, поэтому язык стал органически и порой плохо дисциплинированным. Его популярность также означала, что она стремилась поддерживать обратную совместимость на протяжении всего жизненного цикла, а это означает, что неудовлетворительные решения о языке живут даже после того, как они устарели.
Обратная совместимость и отсутствие пространств имен в сочетании с оттоком речи.
Потому что язык за последние 14 лет вырос с «Личной домашней страницы» до одного из самых популярных языков реализации сайта. Никто не планировал выполнять все эти функции; по мере необходимости они добавлялись по одному.
Ответ – это Evolution или Unintelligent Design. Я не уверен, что;)
Для обратной совместимости с большим количеством языков revs
Кажется, это немного тролль-у. Однако для обратной совместимости.
PHP6 будет обращаться за помощью для решения этих проблем, а также для обеспечения полной поддержки UTF-8.
PHP является «старым», быстрорастущим языком сценариев с открытым исходным кодом. Именование – это всего лишь вопрос долгой истории … Не существует «академической» компании за PHP, как SUN за Java, которая управляет именованием …
Первоначально PHP был просто языком сценариев без объектно-ориентированной поддержки (PHP 3), поэтому имена функций, используемые в PHP до версий 3 и 4, в основном основаны на синтаксисе PERL. Но PHP 5 имеет множество функций OO, таких как Reflection, тип hinting, интерфейс, модификаторы доступа и список. Большинство этих новых функций вдохновлены JAVA. Например; реализация интерфейса и наследующего класса одинаковы в PHP и JAVA. Таким образом, большинство новых функций с их стилями и соглашениями об именах основаны на JAVA. Его можно назвать эволюцией PHP простого языка сценариев для своего рода надежного языка OO.
Я действительно не понимаю, как это важно. Синтаксис – синтаксис. Есть много человеческих языков, английский для одного, где он не соответствует какой-либо конкретной схеме, но мы узнаем его независимо. Все дело в том, чтобы знать ваш синтаксис, а не гадать.