Почему порядок стога сена и иглы несовместим в функциях PHP in_array и strpos?

Порядок параметров haystack и needle в этих двух основных функциях PHP несовместим:

Почему это так?

Я не думаю, что здесь разрешены вопросы такого типа (выбор языкового дизайна). Однако я не могу найти соответствующий мета-пост для него. Я однажды спросил, почему Swift использует func вместо function.

Daan 25.10.2018 11:09

На начальных этапах развития язык органично развивался, его дизайн не был тщательно продуман. Автор добавил функции, исходя из своих непосредственных потребностей. strpos() (и многие другие строковые функции) являются оболочками стандартных функций библиотеки C с именем name, следовательно, они имеют те же аргументы, что и функции C.

axiac 25.10.2018 11:10

Расмус не пытался написать язык, который стал бы даже на долю процента популярнее, чем PHP. Он очень открыто говорит о несоответствиях - на мой взгляд, в конечном итоге все остальные виноваты в том, что приняли язык вопреки им.

iainn 25.10.2018 11:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
539
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Иголка / Стог сена в PHP

На самом деле они не противоречивы, как многие думают. Вы частично обнаружили последовательность:

  • Все строковые функции (стог сена, игла)

  • Все функции массива (игла, стог сена)

Расмус Лердорф (создатель PHP) заявляет об этом в своем выступлении в 2019 году около 25 минут в:

25 лет PHP - phpday 2019

https://thewikihow.com/video_iGOAQli7tGc?t=1485

Несоответствия в PHP

В 16:45 у него есть слайд под названием «О чем он думал?» и он обращается к «несоответствиям в именах». (проблема иголки / стога сена - лишь одна из них)

https://thewikihow.com/video_iGOAQli7tGc?t=1005

В этом выступлении он также объясняет, что его дизайнерские решения для PHP почти все основаны на идее, что PHP является «оболочкой для базовых библиотек C» и сохраняет параметры в том же порядке, что и базовый код.

Другие вопросы по теме