Подтвердить что ты не робот

Спецификация языка PHP?

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

Дело в том, что у меня есть хорошее практическое знание PHP, но я ужасно не знаю, что на самом деле происходит под капотом.

Если официального документа нет, можете ли вы порекомендовать мне несколько хороших книг для чтения?

4b9b3361

Ответ 1

Первоначальная спецификация проекта для языка PHP теперь объявил. Введение спецификации читается следующим образом:

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

  • Исполнители компилятора PHP
  • Исполнители тестового набора для языка PHP
  • Программисты, пишущие PHP-код

В настоящее время библиотека времени выполнения исключена, поскольку она документирована в www.php.net. Таким образом, все прямые ссылки на библиотечные объекты имеют заполнители формы (§xx).

См. также последняя версия проекта.

Ответ 2

Не так давно обсуждалась эта тема в списке рассылки внутренних дел.

Вы можете проверить статус там.

Начальный пост: http://marc.info/?l=php-internals&m=129379585417113&w=2

Уважаемые внутренние лица

После завистливого изучения грамматики питонов (http://docs.python.org/dev/reference/grammar.html) Я продолжаю чувствовать что PHP упускает много интересных метапроектов, а не имеющих официальный EBNF. [...]

и, надеюсь, полезно прочитать описание грамматики:

http://marc.info/?l=php-internals&m=129387252319019&w=2

И статистика возьмет в этом дело:

http://marc.info/?l=php-internals&m=129383062812273&w=2

Привет! [...]

Ты не единственный, кто думает о Это. Но пока никто не перешел от думать об этом на самом деле:)

- Станислав Малышев, архитектор программного обеспечения

Ответ 3

Из того, что я читал в Википедии, как у PHP, так и Perl5 есть общее, что они являются "языками", которые полностью определяются одной реализацией. Язык - это то, что делает интерпретатор. Ни один из них не похож на C или С++ или Java или ECMAScript, которые являются стандартизованными языками со многими различными реализациями. (По-видимому, Perl6 будет отличаться и на самом деле будет иметь спецификацию. Идея PHP также не будет в один прекрасный день сделать этот шаг.)

Ответ 5

Для формально наклонной, подробная (исполняемая) семантика PHP доступна на сайте www.phpsemantics.org и будет представлена ​​завтра на конференции ECOOP 2014 в Швеции.

Ответ 6

Из этой (датированной) публикации в блоге кажется, что для PHP нет спецификации, например, для Java.

Ответ 7

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

Java также имеет отличные книги и, конечно, Спецификация Java.

PHP не имеет спецификации, но имеет техническое руководство и множество примеров. Что еще тебе нужно? Возможно, определенная книга, попробуйте найти Wiley Publishing, они печатают книги о PHP и других языках.