2009-09-02 2 views
1

Я ученик, изучающий PHP. Я в основном делаю работу, но никогда не задумывался о том, как работает php.exe (на окнах).Скомпилирует ли PHP данные?

Составляет ли он материал, который он должен обрабатывать или нет?

Причина, по которой я спрашиваю, потому что кто-то сказал мне, что ASP.NET должен скомпилировать все зависящие от веб-сайта данные, имеет/получает, как и все, что загружается через форму. Он утверждал, что PHP быстрее по этому вопросу, так как ему не нужно ничего компилировать.

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

ответ

5

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

Ваш друг прав, поскольку этот ASP.NET скомпилирован. Тем не менее, это только фактические инструкции программы, которые компилируются, а не данные. То, как PHP и ASP.NET обрабатывают входящие (и исходящие) данные, в принципе аналогичны. Во всяком случае, ASP.NET будет быстрее PHP, потому что он скомпилирован, поскольку скомпилированный код обычно работает быстрее.

1

Ни PHP, ни ASP.NET обычно не компилируют (интерпретируют как программные инструкции и не конвертируют в исполняемый код) данные, полученные через формы.

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

1

№ Тип данных, о которых вы говорите, передается в PHP как данные среды из Apache. Вы можете сделать это самостоятельно с параметрами командной строки в php.exe, если хотите.

Данные редко компилируются, если только они не являются частью ресурса для программы.

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

2

Как сказал @chaos, ASP.NET не «компилирует» данные, полученные через форму.

Скорее всего то, что ваш ассоциированный объект имеет в виду, называется ViewState в ASP.NET, и если это то, о чем он говорит, он прав, хотя он неправильно маркировал его как «компиляцию». ViewState кодирует и сохраняет состояние формы, и серверу необходимо декодировать эти данные и применять их к объектной модели. Он использует эту информацию для повышения активности программистов на стороне сервера, обеспечивая гораздо более богатую модель для программирования.

И, да, это ударный удар. PHP может быть быстрее, чем ASP.NET; Я работал разработчиком PHP и разработчиком ASP.NET, и я могу подтвердить это.

Но производительность еще не все - больше времени тратится на транзит данных, чем на обработку на веб-сервере для всех, но очень мало случаев в нише. И есть другие аспекты вашей системы, которые важны, чем сырая сила нажатия. ASP.NET торгует этой сырой производительностью для других вещей.

Здесь ASP.NET светит и PHP терпит неудачу. PHP не может предложить почти возможности ASP.NET для таких вещей, как модульность, ремонтопригодность, безопасность, повторное использование и общая базовая библиотека. Да, PHP может быть быстрее, чем ASP.NET. Но ASP.NET по-прежнему превосходит.

Конечно, ASP.NET тоже отстой, ИМО, но это больше из-за некоторых дизайнерских решений, с которыми я откровенно не согласен. Но я бы скорее использовал его в PHP в любой день недели.

0

Tor Haugen прав, PHP - это интерпретируемый язык, означающий, что файлы остаются в виде простого текста на сервере и интерпретируются по мере их запроса. ASP.Net - это немного гибрид, потому что файлы * .aspx, * .ashx, * .ascx и т. Д. Все интерпретируются, а внешние библиотеки скомпилированы в файлы DLL, которые затем связаны как обычное настольное приложение. Поэтому, если у вас есть, например, несколько проектов, одним из которых является веб-приложение ASP.Net, которое использует несколько библиотек классов, у вас будет несколько текстовых файлов (файлы веб-приложений) и несколько DLL-файлов, которые генерируются и используются сервер. Вы можете использовать DLL-файлы, которые PHP, но это не так просто. Обычно такие «библиотеки классов» просто «включаются» в качестве дополнительных текстовых файлов

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