Ниже приведен краткий отрывок из нашей новой книги « PHP и MySQL: от новичка до ниндзя», 6-е издание , написанной Томом Батлером и Кевином Янком. Это руководство для начинающих по PHP. Члены SitePoint Premium получают доступ к своему членству, или вы можете купить копию в магазинах по всему миру.
Теперь, когда ваш виртуальный сервер запущен и работает, пришло время написать ваш первый скрипт PHP. PHP — это серверный язык. Эту концепцию может быть немного сложно понять, особенно если вы когда-либо разрабатывали веб-сайты с использованием клиентских языков, таких как HTML, CSS и JavaScript.
Серверный язык похож на JavaScript в том, что он позволяет встраивать небольшие программы (скрипты) в HTML-код веб-страницы. При запуске эти программы дают вам больший контроль над тем, что появляется в окне браузера, чем может обеспечить только HTML. Основное различие между JavaScript и PHP — это этап загрузки веб-страницы, на которой выполняются эти встроенные программы.
Языки на стороне клиента, такие как JavaScript, читаются и выполняются веб-браузером после загрузки веб-страницы (встроенных программ и всего) с веб-сервера. Напротив, серверные языки, такие как PHP, запускаются веб- сервером перед отправкой веб-страницы в браузер. В то время как языки на стороне клиента позволяют контролировать поведение страницы после ее отображения в браузере, языки на стороне сервера позволяют создавать настраиваемые страницы на лету, даже прежде чем они будут отправлены в браузер.
Как только веб-сервер выполнил код PHP, встроенный в веб-страницу, результат заменяет код PHP на странице. Все, что видит браузер, — это стандартный HTML-код при получении страницы, отсюда и название «серверный язык». Давайте рассмотрим простой пример PHP, который генерирует случайное число от 1 до 10 и затем отображает его на экране:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Random Number</title>
</head>
<body>
<p>Generating a random number between 1 and 10:
<?php
echo rand(1, 10);
?>
</p>
</body>
</html>
Большая часть этого — простой HTML. Только строка между <?php
?>
<?php
?>
Веб-сервер должен интерпретировать все между этими двумя разделителями и преобразовать его в обычный HTML-код, прежде чем он отправит веб-страницу запрашивающему браузеру. Если вы щелкнете правой кнопкой мыши внутри своего браузера и выберете « Просмотр источника» (текст может отличаться в зависимости от используемого вами браузера), вы увидите, что браузер имеет следующее:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Random Number</title>
</head>
<body>
<p>Generating a random number between 1 and 10:
5
</p>
</body>
</html>
Обратите внимание, что все признаки кода PHP исчезли. На его месте появился вывод скрипта, который выглядит как стандартный HTML. Этот пример демонстрирует несколько преимуществ серверных сценариев…
- Нет проблем совместимости браузера . Сценарии PHP интерпретируются только веб-сервером, поэтому не нужно беспокоиться о том, поддерживаются ли используемые вами языковые функции браузером посетителя.
- Доступ к ресурсам на стороне сервера . В приведенном выше примере мы поместили случайное число, сгенерированное веб-сервером, на веб-страницу. Если бы мы вставили номер с помощью JavaScript, номер был бы сгенерирован в браузере, и кто-то мог бы изменить код, чтобы вставить конкретный номер. Конечно, есть более впечатляющие примеры использования ресурсов на стороне сервера, таких как вставка содержимого, извлеченного из базы данных MySQL.
- Уменьшена нагрузка на клиента . JavaScript может значительно задержать отображение веб-страницы (особенно на мобильных устройствах!), Так как браузер должен запустить сценарий, прежде чем он сможет отобразить веб-страницу. С помощью серверного кода это бремя передается на веб-сервер, который вы можете сделать настолько громким, насколько требует ваше приложение (и ваш кошелек может себе это позволить).
- Выбор При написании кода, который запускается в браузере, браузер должен понимать, как запускать код, данный ему. Все современные браузеры понимают HTML, CSS и JavaScript. Чтобы написать код, который запускается в браузере, вы должны использовать один из этих языков. Запустив код на сервере, который генерирует HTML, вы можете выбирать из множества языков, одним из которых является PHP.
Основной синтаксис и утверждения
Синтаксис PHP будет очень знаком любому, кто разбирается в JavaScript, C, C ++, C #, Objective-C, Java, Perl или любом другом языке, производном от C. Но если эти языки вам незнакомы или вы новичок в программировании, вам не нужно об этом беспокоиться.
PHP-скрипт состоит из серии команд или операторов. Каждый оператор является инструкцией, которой должен следовать веб-сервер, прежде чем он сможет перейти к следующей инструкции. Операторы PHP, как и в вышеупомянутых языках, всегда заканчиваются точкой с запятой ( ;
Это типичное выражение PHP:
echo 'This is a <strong>test</strong>!';
Это оператор echo
Оператор echo
В данном случае мы предоставили строку текста для вывода: This is a <strong>test</strong>!
, Обратите внимание, что строка текста содержит HTML-теги ( <strong>
</strong>
Итак, если мы возьмем это утверждение и поместим его на полную веб-страницу, вот код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<p><?php echo 'This is a <strong>test</strong>!'; ?></p>
</body>
</html>
Если вы разместите этот файл на своем веб-сервере и затем запросите его с помощью веб-браузера, ваш браузер получит этот HTML-код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<p>This is a <strong>test</strong>!</p>
</body>
</html>
random.php
echo
echo rand(1, 10);
Вы заметите, что в первом примере PHP предоставляется текст для прямой печати, а во втором — инструкция PHP, которой нужно следовать. PHP пытается прочитать все, что существует вне кавычек, в качестве инструкции, которой он должен следовать. Все, что находится внутри кавычек, рассматривается как строка , что означает, что PHP вообще не обрабатывает ее, а просто передает ее вызванной вами команде. Поэтому следующий код пройдет строку. This is a <strong>test</strong>!
непосредственно к команде echo
echo 'This is a <strong>test</strong>!';
Строка обозначается с помощью начальной и конечной кавычек. PHP увидит первое '
'
Напротив, следующий код сначала запустит встроенную функцию rand
echo rand(1, 10);
Вы можете думать о встроенных функциях как о задачах, которые PHP знает, как выполнять, без необходимости разбираться в деталях. PHP имеет много встроенных функций, которые позволяют вам делать все, от отправки электронной почты до работы с информацией, хранящейся в различных типах баз данных.
PHP не будет пытаться запустить что-либо внутри строки. Следующий код не даст ожидаемого результата:
echo 'rand(1, 10)';
Вместо того чтобы запускать встроенную функцию rand
rand(1, 10)
Важно понимать разницу между строкой и кодом . PHP будет видеть любой текст вне кавычек как последовательность команд, которым он должен следовать. Все, что находится внутри кавычек, является строкой и данными, с которыми будет работать PHP.
PHP не пытается понять строки. Они могут содержать любые символы в любом порядке. Но код, который, по сути, представляет собой серию инструкций, должен следовать жесткой структуре, чтобы компьютер мог ее понять.
Когда вы вызываете функцию в PHP, то есть просите ее выполнить свою работу, вы говорите, что вызываете эту функцию. Большинство функций возвращают значение при вызове; Затем PHP ведет себя так, как будто вы на самом деле просто набрали это возвращенное значение в своем коде. В echo 'rand(1, 10)';
Например, наш оператор echo
rand
Затем оператор echo
Каждая функция в PHP может иметь один или несколько аргументов, которые позволяют вам заставить функцию вести себя немного по-другому. Функция rand
Изменяя значения, передаваемые в функцию, вы можете изменить способ ее работы. Например, если вы хотите получить случайное число от 1 до 50, вы можете использовать код:
echo rand(1, 50);
Вы можете задаться вопросом, почему мы должны заключать аргументы в круглые скобки ( (1, 50)
Скобки служат двум целям. Во-первых, они указывают, что rand
Во-вторых, они отмечают начало и конец списка аргументов — операторов PHP, которые вы хотите предоставить — чтобы сообщить функции, что вы хотите, чтобы она делала. В случае функции rand
Эти значения разделяются запятой.
Позже мы рассмотрим функции, которые принимают разные типы аргументов. Мы также рассмотрим функции, которые не принимают аргументов вообще. Эти функции все еще будут нуждаться в скобках, даже если между ними будет нечего печатать.