|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.08.2010, 11:05 | #1 |
Форумчанин
Регистрация: 11.11.2008
Сообщений: 161
|
Обработка интепретатором php
До недавнего времени я думал что обработка php происходит так: код php страницы передается интерпретатору, тот построчно обрабатывает страницу и при встрече с <?php ?> обрабатывает код, после чего передает обычный html серверу, пока не столкнулся с такой конструкцией:
Код:
|
31.08.2010, 13:17 | #2 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Вы можете мне не поверить, но обработка производиться сверху вниз.
Более подробно: - Интерпретатор загружает в память всю требуемую страницу (только текст). При этом "съедается" память и процессорное время. - Затем начинается построчная обработка с учетом ветвления, вызова сторонних функций и т.п. То есть обрабатывается только та часть кода, которая должна выполняться при данных переменных. Процессорное время и память тратятся только на исполняемый код. - Если не было критических ошибок, то интерпретатор возвращает результат (текст или страницу). Здесь также тратиться процессорное время в зависимости от объёма выводимой информации и её оформления. Такой стиль написания кода, который Вы привели ("профессиональная вставка") характерен для новичков, использующих визуальные редакторы. Лично Я рекомендую использовать следующую конструкцию: Код:
|
31.08.2010, 19:52 | #3 |
Пользователь
Регистрация: 31.08.2010
Сообщений: 40
|
Как это работает ? Рассмотрим работу PHP- интерпретатора.
Сначала начнем с этапа получения сервером запроса: Получение запроса сервером. Если запрашивается файл с расширением .html, то сервер отправляет все содержимое файла браузеру, а если запрашиваемый файл имеет расширение .php то сервер передает все содержимое файла PHP-интерпретатору на обработку.Обработка файла PHP-интерпретатором. Код:
В строке 6 интерпретатор создает переменную $a со значением 4 и сохраняет ее в памяти. Эта переменная будет храниться в памяти до тех пор пока интерпретатор будет обрабатывать содержимое файла php. В строке о11 оператор echo выводит значение этой переменной, доказывая тем самым что переменная $a все еще храниться в памяти. А теперь перейдем к подробному обсуждению самой конструкции: Код:
Интерпретатор работает так: В первой строке происходит обработка php-втавки которая содержит незаконченное выражение: if($expression) { ( Обратите внимание на отсутствие закрывающей фигурной скобки ). В этом случае интерпретатор ищет закрывающую фигурную скобку (“}”) в php коде и если ее не находит – то возникает ошибка. В данном случае интерпретатор находит ее в строке 3. Теперь весь текст расположенный между открывающей и закрывающей фигурных скобок( строка 2 ) является содержимым блока условного оператора if( строка 1). И в зависимости от значения выражения if($expression) строка 2 либо пропускается (true) либо удаляется (false). В строке 3 обрабатывается условие else аналогично условию if. |
01.09.2010, 00:17 | #4 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
1.Вот как позиционируют PHP его создатели: Цитата:
3.Каждый разработчик может, конечно, использовать любой удобный лично для него стиль сочетания PHP и HTML - но при этом желательно,чтоб этот стиль был однообразным во всём проекте(проектах). Я имею ввиду - нужно сразу определиться,будет ли это PHP в HTML , или же это будет HTML в PHP - и далее следовать в своём коде этой выбранной позиции. Это повышает читабельность и понимание кода,особенно если далее ваш код будут сопровождать другие программисты,или же вы работаете в команде программистов - где есть свой стиль кодинга и сочетания PHP/HTML - тогда вам нужно привыкать и следовать этому стилю. 4. Ну и всё-таки желательно стремиться к разделению логики и представления - насколько это возможно. Приведённый ТС пример(и подобные) я бы реализовал так: Код:
|
||
01.09.2010, 07:49 | #5 | ||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
- Необходимо учитывать, что на этапе вывода (отправки данных клиенту) очень важен стиль написания кода и используемые функции. Очень часто новички используют не оптимизированные конструкции. |
||
01.09.2010, 08:45 | #6 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Странное обсуждение.
Просто добавлю для топикстартера. Я так думаю ни Andkorol, ни Виталий Желтяков такими способами вставки не пользуются, так же как не пользуются ими и студии. В php уже давно правят шаблонизаторы и/или фреймворки. Программист в идеале вообще не должен видеть разметки. Разметка и код должны "мешаться" только в шаблонах, да и заниматься этим должна машина. + Конечно начинающему web-программисту нужно сначала поделать всё это руками, но и с освоением шаблонизаторов лучше не мешкать.
Стрелок-охотник
Последний раз редактировалось mv28jam; 01.09.2010 в 08:48. |
01.09.2010, 21:55 | #7 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Принципиально не использую шаблонизаторы из-за низкой скорости обработки.
|
02.09.2010, 12:58 | #8 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
Спорное утверждение.
Стрелок-охотник
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PHP test.php?a=1&b=1 не работает передача параметров | бедный_студент | PHP | 5 | 25.08.2010 23:08 |
Преобразование HTML-PHP в PHP с запуском в командной строке. | TERAB1T | PHP | 4 | 01.06.2010 14:14 |
Обработка ошибок PHP | BloodWizard | PHP | 1 | 30.05.2010 14:21 |
помощь по PHP(форма и обработка) | Eugene811 | PHP | 7 | 11.05.2009 04:17 |